跳到主要内容

ArgoCD

ArgoCD

目录

[toc]

Argo cd用起来非常简单。

argocd支持声明式地创建它的应用。

这就是gitops,我改下仓库的地址,argocd能帮我们自动识别到。

image-20230717065110216

FAQ

部署arogo应用

文章来源:

image-20230717065318567

  • 执行
[root@devops7 argocd-testapp]#ls
testapp.yaml
[root@devops7 argocd-testapp]#kubectl apply -f testapp.yaml
application.argoproj.io/directory-guestbook created
[root@devops7 argocd-testapp]#
  • 点击SYNC

image-20230716103835623

image-20230716103857788

image-20230716103944320

  • 观察状态

image-20230716104221331

image-20230716104152164

  • 删除argocd应用

image-20230716104914361

image-20230716104934981

删除成功:

image-20230716104951698

image-20230716105038732

  • 我们将argocd应用的代码仓库换成自己的极狐地址,再次部署,观察现象

image-20230716105144477

[root@devops7 argocd-testapp]#kubectl apply -f testapp.yaml 
application.argoproj.io/directory-guestbook created

可正常部署应用:

image-20230716105304982

image-20230716105325457

以上,本次的测试环境已搭建成功。😘

Token

Token更适合作为二次开发,把它作为CI/CD底层的一个引擎。

kubevela

kubevela对于我们应用交付的作用是非常大的。这个一般用于我们自己构建pass平台,或一个大的交付场景中。例如在多集群应用交付里,使用kubevela是非常方便的。

这个会单独拿出来介绍的。

Argo CD 、flux CD

KubeVela就是基于flux CD做的;

ArgoCD实践

来源(仅收藏)

image-20230709102956854

安装部署

#### apply
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml


#### 查看部署状态
[root@master ~]# kubectl get pod -n argocd
NAME READY STATUS RESTARTS AGE
argocd-application-controller-0 1/1 Running 0 64m
argocd-dex-server-77dd4b844b-tkpxh 1/1 Running 0 64m
argocd-redis-74d8c6db65-b9dl9 1/1 Running 0 64m
argocd-repo-server-5674b858d5-255cc 1/1 Running 0 64m
argocd-server-59964ffc7d-szg4c 1/1 Running 0 64m


#### 使用nodePort
kubectl patch svc argocd-server -p '{"spec": {"type": "NodePort"}}' -n argocd


#### 默认情况下 admin 帐号的初始密码是自动生成的,会以明文的形式存储在 Argo CD 安装的命名空间中名为 password 的 Secret 对象下的 argocd-initial-admin-secret 字段下,我们可以用下面的命令来获取

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d && echo

img

img

img

连接K8s集群

Argo CD 支持部署应用到多集群,所以如果你要将应用部署到外部集群的时候,需要先将外部集群的认证信息注册到 Argo CD 中,如果是在内部部署(运行 Argo CD 的同一个集群,默认不需要配置),应该使用 https://kubernetes.default.svc 作为应用的 K8S APIServer 地址。

#### 下载客户端工具
curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
chmod +x /usr/local/bin/argocd


#### 添加集群
[root@master ~]# argocd-linux-amd64 login 192.168.1.230:30248
WARNING: server is not configured with TLS. Proceed (y/n)? y
Username: admin
Password:
'admin:login' logged in successfully
Context '192.168.1.230:30248' updated

#### 列出当前 kubeconfig 中的所有集群上下文:
[root@master ~]# kubectl config get-contexts -o name
kubernetes-admin@kubernetes

#### 注册集群
[root@master ~]# argocd-linux-amd64 cluster add kubernetes-admin@kubernetes
WARNING: This will create a service account `argocd-manager` on the cluster referenced by context `kubernetes-admin@kubernetes` with full cluster level admin privileges. Do you want to continue [y/N]? y
INFO[0002] ServiceAccount "argocd-manager" already exists in namespace "kube-system"
INFO[0002] ClusterRole "argocd-manager-role" updated
INFO[0002] ClusterRoleBinding "argocd-manager-role-binding" updated
Cluster 'https://192.168.10.100:6443' added

img

添加Git Repo

img

img

创建APP

img

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码 x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号 《云原生架构师实战》

image-20230107215126971

🍀 语雀

https://www.yuque.com/xyy-onlyone

image-20230624093747671

🍀 csdn https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎 https://www.zhihu.com/people/foryouone

image-20230107215203185

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

image-20230717063425902