在Kubernetes环境下,ack-onepilot组件实现了ARMS探针自动升级能力,如果您不需要跟随ARMS探针的版本发布自动更新挂载的探针,可以参考本文锁定探针版本,待新版探针在您的测试环境验证通过后,再逐步更新所有应用的探针版本。
方式一(推荐):自主指定探针版本
ack-onepilot组件版本要求
ack-onepilot组件版本≥3.0.17。
您可以在容器服务管理控制台目标集群下的 页面检查ack-onepilot组件版本。如果版本不满足,请单击升级,更新ack-onepilot组件。
在应用YAML文件中添加Label指定固定的探针版本,该方式会覆盖ARMS探针的版本发布更新,保证应用挂载的探针为指定版本,操作步骤如下:
在ARMS控制台的 页签查看线上支持的探针版本号,建议使用最新发布版本。
在探针在线状态页签查看应用当前挂载的探针版本,以便后续探针版本回滚。
为应用挂载指定的探针版本号。
说明如果同时使用方式一和方式二/方式三来设置应用挂载的探针版本,即在EDAS上进行应用部署时同时指定label参数,则方式二、方式三的配置优先级高于方式一。
方式一:修改应用的YAML文件,在
labels
下添加aliyun.com/agent-version
指定探针版本号,单击更新后,应用将会自动重启生效。该操作生效范围为当前应用,需要固定版本的线上应用都需要修改相应YAML文件。
如果您的ack-onepilot版本大于等于3.3.0,您还可以使用渐进式升级的方式来自主控制探针版本,可以通过在
aliyun.com/agent-version
下方添加如下label来开启渐进式升级:aliyun.com/enable-progressive-update: 'true'
说明渐进式升级可以在您通过Kubernetes重新部署工作负载(Deployment, StatefulSet等)时,只有1~2个实例的探针可以升级到
aliyun.com/agent-version
指定的版本,其余实例挂载的探针版本保持不变。如果应用工作负载的副本数小于3,则渐进式升级能力不会生效,当指定探针版本后,所有的副本都不会升级到指定的版本,此时不建议开启渐进式升级能力。
方式二:针对需要部署在EDAS中的K8s集群应用,您可以在部署应用时,在应用高级设置页签的监控及治理配置区域指定探针版本。
说明如需调整可选的探针版本,请联系EDAS技术支持。
方式三:针对需要使用EDAS的API(InsertK8sApplication或DeployK8sApplication接口)创建或部署的K8s集群应用,您可以通过CustomAgentVersion参数指定探针版本。具体操作,请参见DeployK8sApplication - 部署K8s应用。
在测试环境使用测试应用验证指定探针版本生效后,可逐步更新其他应用的探针版本。
若测试新版本探针功能异常,您可以重复步骤3,恢复应用的探针版本为原版本。
方式二:联系技术支持指定探针版本
如果ack-onepilot组件版本小于3.0.17,或者手动修改YAML方式操作量较大,您可以使用线上版本锁定的方式,将旧的、即将过支持周期的探针版本升级到最新的正式版本。