ArgoCD

Argo CD 能落地 GitOps

Argo CD 是以 Kubernetes 为基础设施的 GitOps 持续部署工具。下面是来自 Argo CD 社区的原理图:
gitops

强大而易扩展的 Argo CD

对于一般的 Kubernetes 运维场景,上面描述的功能是够用的。但是如果是复杂场景,涉及多云、多平台、多中间件,也是需要考虑的。
argocd

安装

在 Kubernetes 上部署 Argo CD
新建命名空间,部署 Argo CD

这里选择当前发布的最新版本: 1.8.3

1
2
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v1.8.3/manifests/install.yaml

Argo CD 社区还提供了 HA 模式的部署方式,kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v1.8.3/manifests/ha/install.yaml 用于生产环境。

查看服务

1
2
3
4
5
6
7
8
9
kubectl -n argocd get svc

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
argocd-dex-server ClusterIP 10.233.34.191 <none> 5556/TCP,5557/TCP,5558/TCP 5m37s
argocd-metrics ClusterIP 10.233.54.3 <none> 8082/TCP 5m36s
argocd-redis ClusterIP 10.233.18.86 <none> 6379/TCP 5m36s
argocd-repo-server ClusterIP 10.233.3.171 <none> 8081/TCP,8084/TCP 5m36s
argocd-server NodePort 10.233.61.3 223.*.*.* 80:31808/TCP,443:30992/TCP 5m36s
argocd-server-metrics ClusterIP 10.233.36.228 <none> 8083/TCP 5m36s

查看 admin 账户密码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ kc get secret -n argocd 
NAME TYPE DATA AGE
argocd-application-controller-token-w2gdp kubernetes.io/service-account-token 3 182d
argocd-applicationset-controller-token-q444h kubernetes.io/service-account-token 3 182d
argocd-dex-server-token-mwfjf kubernetes.io/service-account-token 3 182d
argocd-initial-admin-secret Opaque 1 182d
argocd-notifications-controller-token-m4ctr kubernetes.io/service-account-token 3 182d
argocd-notifications-secret Opaque 0 182d
argocd-redis-token-pqx42 kubernetes.io/service-account-token 3 182d
argocd-repo-server-token-zwnpz kubernetes.io/service-account-token 3 182d
argocd-secret Opaque 9 182d
argocd-server-token-cpv7l kubernetes.io/service-account-token 3 182d
default-token-5vdwr kubernetes.io/service-account-token 3 182d
repo-4178615321 Opaque 6 177d
sh-gitops kubernetes.io/dockercfg 1 180d

$ kc get secret -n argocd -o yaml argocd-initial-admin-secret
echo 'bkFFMElSbMFR1dnBiRA=='|base64 -d

访问页面

浏览器中打开https://223.../login (223..*.*不是真实ip,替换成您的ip)