升级
要升级Kubernetes UniAgent,请按照以下步骤进行操作。
备份旧版本的tingyunagent.yaml。
因为旧版本的yaml可能对collector进行过扩容,可能通过
pod-init.sh
脚本对部分应用设置过特殊的配置,所以首先备份旧版本的tingyunagent.yaml以备查看,新的yaml内也需要修改对应的内容。上传私有镜像库。
如果使用了私有镜像库,上传待升级版本的私有镜像。如果使用Docker官方公共仓库,则跳过此步骤。
通过报表生成新版本的tingyunagent.yaml。
集群名称
需要和旧版本的yaml生成参数保持一致。Namespace
需要和旧版本的yaml生成参数保持一致。说明:如果不清楚原来的集群名称,请查看旧版本yaml中名称为
tingyun-common-config
的configMap中tingyun-common.yaml
的idc_name
配置项。对照旧版本yaml修改新生成的tingyunagent.yaml。
- 将旧版本yaml中
tingyun-common.yaml
里面的cluster_id
,apm_aggressive
替换到新版本yaml中tingyun-common.yaml里面。 - 如果Collector有过扩容,副本数大于1,那么需要修改新版本yaml中collector副本数。
- 如果修改过旧版本yaml中tingyun-injector-config的pod-init.sh脚本,那么需要把修改的内容添加到新的yaml内tingyun-injector-config的pod-init.sh脚本。
- 如果修改过旧版本yaml中tingyun-injector-config的限量策略policy.yaml,那么需要修改的内容添加到新的yaml内tingyun-injector-config的限量策略policy.yaml。
- 如果是从2.4.0及以下版本升级到2.4.1及以上版本时,因为部署的collector的service名称有变动,所以当apply新yaml后,需要及时重启已嵌码的应用pod,如果不能及时重启所有的应用pod,需要在新的tingyunagent.yaml增加以下内容才能保证尽少丢失监控数据。
--- apiVersion: v1 kind: Service metadata: name: tingyun-collector namespace: tingyun spec: selector: vendor: tingyun component: collector ports: - name: apm protocol: TCP port: 7665 targetPort: 7665 - name: infra protocol: TCP port: 7666 targetPort: 7666 sessionAffinity: ClientIP clusterIP: None
- 将旧版本yaml中
执行yaml。
执行
kubectl delete -f 旧版本tingyunagent.yaml
删除旧的资源。执行
kubectl apply -f 新版本tingyunagent.yaml
创建新的资源。