Hermes Agent旧版如何进行降级操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计760个文字,预计阅读时间需要4分钟。
如果您正在运行Hermes Agent的新版本(如v1.9.0),但遇到兼容性问题、功能异常或配置冲突导致服务不稳定,您可以选择执行以下步骤进行版本回退:
一、使用Kubernetes滚动更新历史回滚
当Hermes Agent以Deployment形式部署在Kubernetes集群中,且revisionHistoryLimit未被设为0时,系统自动保留历史ReplicaSet,可直接回退至上一稳定版本镜像。
1、执行命令查看可用的历史修订版本:kubectl rollout history deployment/hermes-agent -n hermes-system
2、确认目标回滚版本对应的REVISION编号(例如:2)
3、执行回滚指令:kubectl rollout undo deployment/hermes-agent --to-revision=2 -n hermes-system
4、等待Pod重建完成,并验证新Pod中容器镜像标签是否已还原为v1.8.3
二、手动替换DaemonSet模板并强制重启
适用于Hermes Agent以DaemonSet方式部署且未启用自动滚动更新策略的场景。该方法绕过版本控制机制,直接覆盖当前生效的YAML定义并触发全节点Pod重建。
1、从备份目录中获取上一稳定版本的hermes-agent-daemonset.yaml文件
2、修改文件中image字段值为registry.example.com/hermes/agent:v1.8.3
3、执行应用命令:kubectl apply -f hermes-agent-daemonset.yaml -n hermes-system
4、检查各节点Pod状态:kubectl get pods -n hermes-system -o wide | grep Running
三、通过ConfigMap切换运行时配置实现逻辑降级
当无法立即变更Agent二进制或容器镜像时,可利用Hermes Agent支持的动态配置加载能力,临时禁用高风险模块并恢复兼容性参数,达到等效于旧版本行为的效果。
1、定位当前生效的配置ConfigMap:kubectl get configmap -n hermes-system | grep agent-config
2、编辑该ConfigMap,将enable_feature_x字段值由true改为false
3、将max_collection_interval_seconds数值调整为30(原v1.9.0默认为15)
4、保存后,所有Agent Pod将在60秒内自动重载配置,无需重启进程
四、离线环境下的本地包替换回滚
针对物理机或无容器运行时的部署模式,需直接替换主机上的Agent程序文件与服务配置,确保二进制、配置、权限三者一致。
1、停止当前运行的Agent服务:systemctl stop hermes-agent
2、备份当前二进制文件:cp /usr/local/bin/hermes-agent /usr/local/bin/hermes-agent.v1.9.0.bak
3、从可信离线介质中复制旧版二进制:cp /mnt/backup/hermes-agent-v1.8.3 /usr/local/bin/hermes-agent
4、同步替换配置文件:cp /mnt/backup/config.yaml /etc/hermes/config.yaml
5、修复文件权限:chmod 755 /usr/local/bin/hermes-agent && chmod 600 /etc/hermes/config.yaml
6、重启服务:systemctl start hermes-agent
本文共计760个文字,预计阅读时间需要4分钟。
如果您正在运行Hermes Agent的新版本(如v1.9.0),但遇到兼容性问题、功能异常或配置冲突导致服务不稳定,您可以选择执行以下步骤进行版本回退:
一、使用Kubernetes滚动更新历史回滚
当Hermes Agent以Deployment形式部署在Kubernetes集群中,且revisionHistoryLimit未被设为0时,系统自动保留历史ReplicaSet,可直接回退至上一稳定版本镜像。
1、执行命令查看可用的历史修订版本:kubectl rollout history deployment/hermes-agent -n hermes-system
2、确认目标回滚版本对应的REVISION编号(例如:2)
3、执行回滚指令:kubectl rollout undo deployment/hermes-agent --to-revision=2 -n hermes-system
4、等待Pod重建完成,并验证新Pod中容器镜像标签是否已还原为v1.8.3
二、手动替换DaemonSet模板并强制重启
适用于Hermes Agent以DaemonSet方式部署且未启用自动滚动更新策略的场景。该方法绕过版本控制机制,直接覆盖当前生效的YAML定义并触发全节点Pod重建。
1、从备份目录中获取上一稳定版本的hermes-agent-daemonset.yaml文件
2、修改文件中image字段值为registry.example.com/hermes/agent:v1.8.3
3、执行应用命令:kubectl apply -f hermes-agent-daemonset.yaml -n hermes-system
4、检查各节点Pod状态:kubectl get pods -n hermes-system -o wide | grep Running
三、通过ConfigMap切换运行时配置实现逻辑降级
当无法立即变更Agent二进制或容器镜像时,可利用Hermes Agent支持的动态配置加载能力,临时禁用高风险模块并恢复兼容性参数,达到等效于旧版本行为的效果。
1、定位当前生效的配置ConfigMap:kubectl get configmap -n hermes-system | grep agent-config
2、编辑该ConfigMap,将enable_feature_x字段值由true改为false
3、将max_collection_interval_seconds数值调整为30(原v1.9.0默认为15)
4、保存后,所有Agent Pod将在60秒内自动重载配置,无需重启进程
四、离线环境下的本地包替换回滚
针对物理机或无容器运行时的部署模式,需直接替换主机上的Agent程序文件与服务配置,确保二进制、配置、权限三者一致。
1、停止当前运行的Agent服务:systemctl stop hermes-agent
2、备份当前二进制文件:cp /usr/local/bin/hermes-agent /usr/local/bin/hermes-agent.v1.9.0.bak
3、从可信离线介质中复制旧版二进制:cp /mnt/backup/hermes-agent-v1.8.3 /usr/local/bin/hermes-agent
4、同步替换配置文件:cp /mnt/backup/config.yaml /etc/hermes/config.yaml
5、修复文件权限:chmod 755 /usr/local/bin/hermes-agent && chmod 600 /etc/hermes/config.yaml
6、重启服务:systemctl start hermes-agent

