说明
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
查看运行的 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 的 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。
Argo CD CLI 登录
argocd login 192.168.98.221:30287 --username admin --password Transsion#123
Web 登录
https://192.168.98.221:30287