ArgoCD——基于git的自动化部署

时间:Aug. 9, 2022 分类:

目录:

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即可

界面可以看到程序的状态