持续交付工具Argo CD的部署使用
ArgoCD 是 Kubernetes 生态中最受欢迎的 GitOps 持续交付工具,它通过将应用声明式配置存储在 Git 仓库中,并自动同步到集群,实现了“Git 作为单一事实来源”的交付模式。
核心逻辑:
架构图 
一、创建命名空间
kubectl create ns argocd
二、部署ArgoCD
参考官方部署文档:Argo CD 中文文档 平台工程 Devops
1、YAML文件部署
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
安装时可能会出现以下报错:
The CustomResourceDefinition "applicationsets.argoproj.io" is invalid: metadata.annotations: Too long: may not be more than 262144 bytes
这通常是因为 CRD 的注解(annotation)内容超出了 Kubernetes 262144 字节的限制。解决此问题的方法是改用服务端应用(server-side apply)策略,并强制解决冲突。
kubectl apply -n argocd –server-side –force-conflicts -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
命令说明
- –server-side: 启用服务端应用,由 Kubernetes 服务器端处理合并逻辑,可以有效规避部分客户端的限制。
- –force-conflicts: 强制解决应用时可能发生的字段管理冲突,确保操作能够继续执行。
2、查看pod启动状态
kubectl get pod -n argocd -w
等待所有Pod变成running状态
3、修改ArgoCD Server 服务类型为 NodePort
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "NodePort"}}'
4、查看NodePort端口号
kubectl get svc argocd-server -n argocd

这里可以得到我们的argocd-server得到的端口号是32234和30188
5、获取初始管理员密码
集群部署 ArgoCD 完成后,命名空间内会自动创建 Secret:argocd-initial-admin-secret,管理员用户名固定为 admin,初始密码保存于此 Secret 中,执行 base64 解码命令即可查看。
echo -e "用户名:admin\\n密码:$(kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d)"

6、修改初始密码
访问ArgoCD Web页面 → 左侧菜单栏【User Info】 → 【UPDATE PASSWORD】

至此,ArgoCD 已安装完成 🎉
三、使用 ArgoCD部署应用
首先,我们来认识一下ArgoCD界面的一些功能

1、准备一个Git仓库
我们使用Gitlab进行演示,创建一个简单的Git仓库,并把部署资源文件Push到我们的Gitlab仓库

代码示例:
#deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: argocd–test–nginx
spec:
replicas: 1
selector:
matchLabels:
app: test–nginx
template:
metadata:
labels:
app: test–nginx
spec:
containers:
– name: nginx
image: nginx:alpine
ports:
– containerPort: 80
#svc.yaml
apiVersion: v1
kind: Service
metadata:
name: argocd–test–svc
spec:
selector:
app: test–nginx
ports:
– port: 80
targetPort: 80
nodePort: 30088
type: NodePort
2、ArgoCD配置Git仓库
【Setting】——【Repositories】——【CONNECT REPO】

参考以上方式配置,然后点击上方【CONNECT】进行连接,出现 【✅️Successful】代表连接成功了!

3、创建应用
现在我们在ArgoCD里创建应用,步骤如下
【Applications】——【NEW APP】

创建完成后如下所示:可以看到状态都变成正常 
4、查看资源部署情况
# 查看demo命名空间下所有资源
kubectl get all -n demo

可以看到资源正常创建并运行,浏览器打开 http://集群任意节点IP:30088,能看到 Nginx 欢迎页。
四、使用ArgoCD更新应用
1、修改代码
我们对代码进行修改,并提交到仓库
replicas: 1 → replicas: 3
nodePort: 30088 → nodePort: 30888
2、ArgoCD同步
等待几分钟,可以看到ArgoCD检测到Git代码更新后,触发Auto-Sync自动更新,pod数量变成3个,nodeport端口也变成了30888

五、使用ArgoCD回滚版本
我们点击上方【HISTORY AND ROLLBACK】,可以看到应用部署的历史版本,找到最初版本点击【Roolback】 
等待同步完成后即可成功回滚版本

网硕互联帮助中心




评论前必须登录!
注册