Argo CD是用于Kubernetes的声明性GitOps连续交付工具。
应用程序定义,配置和环境应为声明性的,并受版本控制。应用程序部署和生命周期管理应该是自动化的,可审核的且易于理解的。
Argo CD被实现为kubernetes控制器,该控制器连续监视正在运行的应用程序, 并将当前的活动状态与所需的目标状态(在Git存储库中指定)进行比较。其活动状态偏离目标状态的已部署应用程序被标记为OutOfSync。Argo CD报告并可视化差异,同时提供了自动或手动将实时状态同步回所需目标状态的功能。在Git存储库中对所需目标状态所做的任何修改都可以自动应用并反映在指定的目标环境中。
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
从github 下载最新版本的argo cli https://github.com/argoproj/argo-cd/releases/latest
mac 环境可以这样安装:
brew tap argoproj/tap
brew install argoproj/tap/argocd
kubectl port-forward svc/argocd-server -n argocd 8080:443
argo login 127.0.0.1:8080
默认密码为argocd-server pod的名称,如果重新生成,可以这样修改密码为 password
kubectl -n argocd patch secret argocd-secret \\n -p '{"stringData": {\n "admin.password": "$2a$10$rRyBsGSHK6.uc8fntPwVIuLVHgsAhAX7TcdrqW/RADU0uh7CaChLa",\n "admin.passwordMtime": "'$(date +%FT%T%Z)'"\n }}'
argocd cluster add #列出当前配置的上下文列表
argocd cluster add kubernetes-admin@kubernetes
argocd app create guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --dest-server https://kubernetes.default.svc --dest-namespace default
argocd app get guestbook
argocd app sync guestbook
在页面上可以看到各个资源的状态、配置、以及关联关系