升级

要升级Kubernetes UniAgent,请按照以下步骤进行操作。

  1. 备份旧版本的tingyunagent.yaml。

    因为旧版本的yaml可能对collector进行过扩容,可能通过pod-init.sh脚本对部分应用设置过特殊的配置,所以首先备份旧版本的tingyunagent.yaml以备查看,新的yaml内也需要修改对应的内容。

  2. 上传私有镜像库。

    如果使用了私有镜像库,上传待升级版本的私有镜像。如果使用Docker官方公共仓库,则跳过此步骤。

  3. 通过报表生成新版本的tingyunagent.yaml。

    集群名称需要和旧版本的yaml生成参数保持一致。Namespace需要和旧版本的yaml生成参数保持一致。

    说明:如果不清楚原来的集群名称,请查看旧版本yaml中名称为tingyun-common-config的configMap中tingyun-common.yamlidc_name配置项。

  4. 对照旧版本yaml修改新生成的tingyunagent.yaml。

    • 将旧版本yaml中tingyun-common.yaml里面的cluster_idapm_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
    
  5. 执行yaml。

    • 执行kubectl delete -f 旧版本tingyunagent.yaml删除旧的资源。

    • 执行kubectl apply -f 新版本tingyunagent.yaml创建新的资源。

results matching ""

    No results matching ""