说明 Argo CD 有多种部署方式,常用的有三种: 直接通过yaml文件部署 使用helm方式部署 使用KubeSphere部署 Argo CD,仅测试可参考在Linux上单机安装 KubeSphere 这里我们使用第一种方式,通过
说明
Argo CD 有多种部署方式,常用的有三种:
-
直接通过yaml文件部署
-
使用helm方式部署
- 使用KubeSphere部署 Argo CD,仅测试可参考在Linux上单机安装 KubeSphere
这里我们使用第一种方式,通过yaml文件部署。
部署流程
创建命名空间
kubectl create namespace argocd下载 yaml 部署文件
# 下载yaml文件 wget https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml # apply kubectl apply -n argocd -f install.yaml说明:
(1)使用指定最新版版本:
# 当前最新的稳定版 v2.0.4 kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.0.4/manifests/install.yaml # 生产环境,则可以使用下面的命令部署一个 HA 高可用的版本: kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.0.4/manifests/ha/install.yaml(2)如果你对 UI、SSO、多集群管理这些特性不感兴趣,只想把应用变更同步到集群中,那么你可以使用--disable-auth标志来禁用认证,可以通过下面命令实现:
kubectl patch deploy argocd-server -n argocd -p '[{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--disable-auth"}]' --type json查看运行的 Pod
kubectl get pod -n argocd NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 16h argocd-dex-server-5cc647cc95-kwgnh 1/1 Running 0 16h argocd-redis-f4fb46c44-7sdgf 1/1 Running 0 16h argocd-repo-server-6f9986fd5b-hkm2c 1/1 Running 0 16h argocd-server-56f4487bb7-gxc78 1/1 Running 0 16h安装 Argo CD CLI
要与 Argo CD API Server 进行交互,我们需要安装 CLI 命令:
下载 argocd CLI
# 下载 CLI wget https://github.com/argoproj/argo-cd/releases/download/v2.0.0/argocd-linux-amd64 cp argocd-linux-amd64 /usr/local/bin/argocd chmod +x /usr/local/bin/argocd # 查看版本 argocd version说明:
我们可以在Argo CD Git仓库发布页面https://github.com/argoproj/argo-cd/releases/latest查看最新版本的 Argo CD 或运行以下命令来获取版本:
VERSION=$(curl --silent "https://api.github.com/repos/argoproj/argo-cd/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/') # VERSION 在下面的命令中替换为你要下载的 Argo CD 版本: curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/download/$VERSION/argocd-linux-amd64修改 Argo CD 的 service 类型
上面 Argo CD 使用 yaml 方式部署,修改 serivce 类型为 nodeport,以便访问 Argo CD API Server:
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "NodePort"}}'查看 Argo CD的 service port
查看 Argo CD server service,记录 nodeport 信息:
kubectl get svc -n argocd NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE argocd-dex-server ClusterIP 10.233.62.221 <none> 5556/TCP,5557/TCP,5558/TCP 16h argocd-metrics ClusterIP 10.233.45.86 <none> 8082/TCP 16h argocd-redis ClusterIP 10.233.14.50 <none> 6379/TCP 16h argocd-repo-server ClusterIP 10.233.14.35 <none> 8081/TCP,8084/TCP 16h argocd-server NodePort 10.233.3.247 <none> 80:30287/TCP,443:32424/TCP 16h argocd-server-metrics ClusterIP 10.233.0.43 <none> 8083/TCP 16h登录 Argo CD
修改 Argo CD 默认密码,方法如下:
# bcrypt(password)=$2a$10$0B5f6xlaKTA2bKRUmyzW6.JwtDa0dv5YvvpP4Ds5kL9en/U5hZ69O kubectl -n argocd patch secret argocd-secret \ -p '{"stringData": { "admin.password": "$2a$10$0B5f6xlaKTA2bKRUmyzW6.JwtDa0dv5YvvpP4Ds5kL9en/U5hZ69O", "admin.passwordMtime": "'$(date +%FT%T%Z)'" }}'说明:关于首次登录不上的问题,建议使用上面方法手动修改密码,官网链接,另外密码加密可使用工具:Bcrypt Password Generator。