ArgoCD——基于git的自动化部署
目录:
Argo CD
参考官方文档
安装
安装ArgoCD
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
会创建argo的namespace,安装ArgoCD相关组件
如果不需要UI、SSO和多集群等功能,可以只安装ArgoCD
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/core-install.yaml
安装的过程中会有自签名的证书,所以需要做client和浏览器对证书信任
对外提供访问
- 对对应的svc进行操作即可
- 通过kubectl的port-forward
kubectl port-forward svc/argocd-server -n argocd 8080:443
安装ArgoCD CLI
可以从ArgoCD CLI下载
添加其他的集群
默认集群就是运行ArgoCD的集群,使用的就是https://kubernetes.default.svc作为apiserver地址
如果需要控制其他集群,需要将其他集群的Context加入
kubectl config get-contexts -o name
argocd cluster add CONTEXTNAME
使用
登录
安装好的ArgoCD会生成默认密码,获取方式
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
这个只是存储最初生成的密码,并且随时可以删除
更新密码通过命令行工具
argocd account update-password
从git存储库创建应用程序
示例git地址https://github.com/argoproj/argocd-example-apps.git
通过cli创建应用程序
argocd app create guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --dest-server https://kubernetes.default.svc --dest-namespace default
通过UI创建
选择NEW APP新建应用
应用名称为guestbook,使用default项目,同步策略为Manual
设置git的对应地址,Revision为HEAD,Path为guestbook
Destination中设置集群的URL或者集群名称,和对应的namespace
通过create创建
同步应用
通过cli同步
通过cli可以查看状态
$ argocd app get guestbook
Name: guestbook
Server: https://kubernetes.default.svc
Namespace: default
URL: https://10.97.164.88/applications/guestbook
Repo: https://github.com/argoproj/argocd-example-apps.git
Target:
Path: guestbook
Sync Policy: <none>
Sync Status: OutOfSync from (1ff8a67)
Health Status: Missing
GROUP KIND NAMESPACE NAME STATUS HEALTH
apps Deployment default guestbook-ui OutOfSync Missing
Service default guestbook-ui OutOfSync Missing
服务目前是一个OutOfSync的状态,可以通过命令行进行同步
argocd app sync guestbook
会检索清单进行apply
通过UI同步
选择Sync即可
界面可以看到程序的状态