部署ArgoCD

1 前提

已通过kubeadm搭建集群环境,具体可参考——使用kubeadm部署k8s 1.15集群——基于CentOS 7

2 部署argocd应用

直接使用官网的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命令看下是不是镜像拉取问题。

3.访问

这里我们通过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的第三部分。

4.登录

这里有个坑,不同版本的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,

在这里插入图片描述

5.部署应用

5.1 通过UI部署

登录argocd web页面,点击NEW APP
填写项目信息,这里我们以官方的guestbook为例,
在这里插入图片描述填写对应的git地址,
在这里插入图片描述然后是部署地址,这以当前集群为例,
在这里插入图片描述最后就可以点击create,创建应用,创建后可以看到如下应用信息。

在这里插入图片描述

5.2 命令行方式部署

这需要先安装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

参考文档

  1. https://github.com/argoproj/argo-cd/blob/master/docs/getting_started.md
  2. https://github.com/argoproj/argo-cd/blob/master/docs/faq.md#i-forgot-the-admin-password-how-do-i-reset-it
  3. https://github.com/argoproj/argo-cd/blob/master/docs/cli_installation.md

版权声明:本文为u010039418原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。