云原生CI/CD | Argo CD 详细介绍 (一)
什么是Argo CD?
ArgoCD
是以 Kubernetes Controller
的形式来实现的,它会对运行在 Kubernetes
集群上的应用程序进行监听,并将实际运行状态和期望状态(在部署清单文件中指定,且存储在版本控制系统中)进行对比,当两者状态不一致的时候,则提示 OutOfSync
,此时可以通过自动或者手动的方式来完成同步操作,以让两者状态再次保持一致。存储在 Git
仓库中的任何变更都会被自动同步至集群侧。
Argo cd安装
[root@k8s-master ~]# kubectl create namespace argocd
namespace/argocd created
[root@k8s-master ~]# kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
[root@k8s-master ~]# kubectl get pod,svc -n argocd
NAME READY STATUS RESTARTS AGE
pod/argocd-application-controller-0 1/1 Running 0 8m55s
pod/argocd-applicationset-controller-5fc7f85d7-fng6k 1/1 Running 0 8m55s
pod/argocd-dex-server-7768bbd49f-bglzh 1/1 Running 0 8m55s
pod/argocd-notifications-controller-7f755cf54c-fr5k5 1/1 Running 0 8m55s
pod/argocd-redis-794d54f5f7-d7k85 1/1 Running 0 8m55s
pod/argocd-repo-server-5cd7854ccb-wh75d 1/1 Running 0 8m55s
pod/argocd-server-5d4db8fd9-wmxr6 1/1 Running 0 8m55s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/argocd-applicationset-controller ClusterIP 10.96.217.4 <none> 7000/TCP,8080/TCP 8m56s
service/argocd-dex-server ClusterIP 10.96.165.22 <none> 5556/TCP,5557/TCP,5558/TCP 8m56s
service/argocd-metrics ClusterIP 10.96.117.13 <none> 8082/TCP 8m56s
service/argocd-notifications-controller-metrics ClusterIP 10.96.178.194 <none> 9001/TCP 8m55s
service/argocd-redis ClusterIP 10.96.97.86 <none> 6379/TCP