已通过kubeadm搭建集群环境,具体可参考——使用kubeadm部署k8s 1.15集群——基于CentOS 7
直接使用官网的yaml文件,不过要先创建新的命名空间——argocd
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
部署成功后,查看创建的pod资源,
[root@master home]# kubectl get pod -n argocd
NAME READY STATUS RESTARTS AGE
argocd-application-controller-0 1/1 Running 0 6d7h
argocd-dex-server-7946bfbf79-djsp9 1/1 Running 3 6d7h
argocd-redis-645c6c5b59-pqrn5 1/1 Running 0 6d7h
argocd-repo-server-6b5cf77fbc-tfvgh 1/1 Running 0 6d7h
argocd-server-86f7f94488-75nh4 1/1 Running 0 6d7h
如果创建失败,用describe命令看下是不是镜像拉取问题。
这里我们通过kubectl port-forward方式,
[root@master home]# kubectl port-forward --address='192.168.0.110' -n argocd service/argocd-server 8088:80
Forwarding from 192.168.0.110:8088 -> 8080
Handling connection for 8088
把argocd-server服务的80端口映射到master节点的8088端口,然后通过master节点ip即可访问,
更多访问方式参考上一篇文章——部署k8s dashboard的第三部分。
这里有个坑,不同版本的argocd登录密码不同,v1.8及之前的版本,默认的登录密码是argocd-server的pod名称,也就是argocd-server-86f7f94488-75nh4
[root@master ~]# kubectl get pod -n argocd
NAME READY STATUS RESTARTS AGE
argocd-application-controller-0 1/1 Running 0 6d7h
argocd-dex-server-7946bfbf79-djsp9 1/1 Running 3 6d7h
argocd-redis-645c6c5b59-pqrn5 1/1 Running 0 6d7h
argocd-repo-server-6b5cf77fbc-tfvgh 1/1 Running 0 6d7h
argocd-server-86f7f94488-75nh4 1/1 Running 0 6d7h
但是,在v1.9之后的版本,初始密码存放在argocd-initial-admin-secret这个secret里,可以通过如下方式获取密码,
[root@master ~]# kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
yoLNwcdjNFIJGTYP
由于我们用的argocd是v2.0.4,因此需要通过argocd-initial-admin-secret来获取,这里卡主了好久。
获取密码之后就可以登录了,用户名为admin,
登录argocd web页面,点击NEW APP
填写项目信息,这里我们以官方的guestbook为例,
填写对应的git地址,
然后是部署地址,这以当前集群为例,
最后就可以点击create,创建应用,创建后可以看到如下应用信息。
这需要先安装argocd的cli工具,
VERSION=$(curl --silent "https://api.github.com/repos/argoproj/argo-cd/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/')
curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/download/$VERSION/argocd-linux-amd64
chmod +x /usr/local/bin/argocd
然后通过cli命令登录argocd,根据提示输入用户名和密码
argocd login 10.102.178.230
其中,10.102.178.230是argocd的service ip,
[root@master ~]# kubectl get svc -n argocd
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
...
argocd-server ClusterIP 10.102.178.230 <none> 80/TCP,443/TCP 17d
登录后就可以创建应用了,
[root@master ~]# argocd app create guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --dest-server https://kubernetes.default.svc --dest-namespace default
application 'guestbook' created
参考文档