在ArgoCD中如何启动或停止已部署的应用?
ArgoCD应用启停相关问题解答
职责边界澄清
- 你对ArgoCD的概念理解没有偏差,启停应用运行态的能力确实不属于ArgoCD的原生职责范围。ArgoCD是GitOps理念的持续交付实现,核心能力是保证Kubernetes集群的实际运行状态和Git仓库中存储的声明式配置完全一致,仅负责配置同步、版本回滚、部署状态校验等交付链路的功能,和Linux下的systemd这类服务生命周期管理工具的定位完全不同。
- 不需要为了启停能力额外开发应用自定义接口直接和应用通信,除非你有业务专属的优雅启停逻辑(比如需要处理完未完成的请求、持久化中间态数据再下线等特殊需求),单纯的启停运行实例直接使用Kubernetes原生能力即可。
常规临时关停应用的实现方式
方式1:通过ArgoCD同步规则实现(推荐,符合GitOps规范)
修改Git仓库中对应应用的部署配置(Deployment/StatefulSet等 workload 资源),将spec.replicas字段值改为0,提交后触发ArgoCD Sync操作即可关停所有运行的实例;需要恢复时将副本数改回原有值重新同步即可。
方式2:临时修改集群状态(仅适合临时测试场景)
先在ArgoCD控制台关闭对应应用的自动同步功能,避免配置被覆盖,随后执行kubectl命令调整副本数:kubectl scale deployment <你的部署名称> --replicas=0 -n <应用所在命名空间>
需要恢复时要么手动将副本数改回原有值,要么重新开启自动同步,ArgoCD会自动拉取Git中的配置恢复原有实例数。
内容的提问来源于stack exchange,提问作者rook
相关产品推荐
相关产品推荐

