一、前言
ArgoCD 是一个开源的、持续交付工具,用于自动化部署应用程序到 Kubernetes 集群。它基于 GitOps 理念,通过使用 Git 作为单一的源头来管理应用程序的配置和部署状态,argocd会定时监控git仓库中的yaml配置文件,当git仓库中的yaml配置发生变更时,就会触发argocd的同步功能,argocd就会用git仓库中新的yaml文件更新pod,这样的好处就是避免了在外部使用证书去调用k8s api去更新pod
二、部署
在部署argocd之前,先部署argocd cli命令工具用于管理argocd
有需要也可以参考argocd官网的部署:Installation - Argo CD - Declarative GitOps CD for Kubernetes
下载:https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
创建目录
mkdir /opt/argocd && cd /opt/argocd
下载argocd工具
wget https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
将argocd工具拷贝到执行目录并赋权
cp argocd-linux-amd64 /usr/local/bin/argocd
chmod +x /usr/local/bin/argocd
部署argocd服务
这里部署的是单节点的argocd,github上也有高可用的yaml
参考:argo-cd/manifests/ha at v2.10.3 · argoproj/argo-cd · GitHub
我们这里用单节点部署yaml
参考:argo-cd/manifests at v2.10.3 · argoproj/argo-cd · GitHub
下载yaml文件
wget https://github.com/argoproj/argo-cd/blob/v2.10.3/manifests/install.yaml
创建argocd命名空间
kubectl create namespace argocd
部署argocd服务
kubectl create -f install.yaml -n argocd
查看是否正常部署
kubectl get pod -n argocd
更改argocd的svc为nodeport模式
kubectl edit svc argocd-server -n argocd
查看是否生效
kubectl get svc -n argocd
获取argocd的初始密码
kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d
使用argocd的初始密码登录argocd web
http://10.1.60.119:30020
更改argocd的初始密码