Kubernetes微服务实战
上QQ阅读APP看书,第一时间看更新

4.6.4 配置Argo CD

注意需要设置argocd-server的端口转发:

然后,你可以到https://localhost:8080浏览并输入管理员用户的密码来登录,如图4-6所示。

Argo CD的配置过程很简单。它的界面设计很友好,并且易于使用。它支持开箱即用的Delinkcious单体仓库,并且不会假设每个Git代码仓库都包含一个应用程序或项目。

它将要求你提供一个Git代码仓库来监控更改,一个Kubernetes集群(默认为其安装的集群),然后它将尝试检测该仓库中的清单。Argo CD支持多种清单格式和模板,例如Helm、ksonnet和kustomize,本书后面的章节会介绍其中一些出色的工具。为简单起见,我们为每个应用程序配置了Argo CD支持的原生k8s YAML清单目录。

接下来就可以使用Argo CD了!

图4-6 Argo CD登录界面

使用同步策略

默认情况下,Argo CD会检测应用程序的清单是否同步,但是它不会自动同步,这是一个很好的默认值。有时候,在将更改推向生产环境之前,需要在特殊的环境中进行许多测试。还有一些情况必须要有人为参与的流程。但是,在环境允许的情况下,你也可以立即将更改自动部署到集群,而无须人工干预。Argo CD遵循GitOps使得回滚至任何以前的版本(包括最后一个版本)变得非常容易。

对于Delinkcious,我们选择了自动同步,因为这是一个演示项目,而部署有问题的版本的后果可以忽略不计。配置可以在UI界面或CLI命令行中完成:

自动同步策略不能保证应用程序始终保持同步。控制自动同步过程有一些限制:

·处于错误状态的应用程序将不会尝试自动同步。

·Argo CD将仅对特定的提交SHA和参数尝试一次自动同步。

·如果由于任何原因自动同步失败,它将不会再次尝试。

·你无法使用自动同步功能回滚应用程序。

在这些情况下,你必须对清单进行更改以触发另一个自动同步或手动同步。如果要进行回滚(或通常同步到以前的版本),则必须关闭自动同步。

Argo CD提供了另一种用于修剪部署资源的策略。当现有资源在Git中不再存在时,默认情况下Argo CD不会将其删除。这是一种安全保护机制,用于避免在编辑Kubernetes清单出错的时候破坏关键资源。但是,如果你知道自己在做什么(例如,对于无状态应用程序),那么可以启用自动修剪: