ArgoCD
ArgoCD
目录
[toc]
Argo cd用起来非常简单。
argocd支持声明式地创建它的应用。
这就是gitops,我改下仓库的地址,argocd能帮我们自动识别到。
FAQ
部署arogo应用
文章来源:
- 执行
[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
- 观察状态
- 删除argocd应用
删除成功:
- 我们将argocd应用的代码仓库换成自己的极狐地址,再次部署,观察现象
[root@devops7 argocd-testapp]#kubectl apply -f testapp.yaml
application.argoproj.io/directory-guestbook created
可正常部署应用:
以上,本次的测试环境已搭建成功。😘
Token
Token
更适合作为二次开发,把它作为CI/CD底层的一个引擎。
kubevela
kubevela
对于我们应用交付的作用是非常大的。这个一般用于我们自己构建pass平台,或一个大的交付场景中。例如在多集群应用交付里,使用kubevela
是非常方便的。
这个会单独拿出来介绍的。
Argo CD 、flux CD
KubeVela就是基于flux CD
做的;
ArgoCD实践
来源(仅收藏)
安装部署
#### 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
连接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
添加Git Repo
创建APP
关于我
我的博客主旨:
- 排版美观,语言精炼;
- 文档即手册,步骤明细,拒绝埋坑,提供源码;
- 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!
🍀 微信二维码 x2675263825 (舍得), qq:2675263825。
🍀 微信公众号 《云原生架构师实战》
🍀 语雀
https://www.yuque.com/xyy-onlyone
🍀 csdn https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421
🍀 知乎 https://www.zhihu.com/people/foryouone
最后
好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!