ToB企服应用市场:ToB评测及商务社交产业平台

标题: 从安装到配置,教你用Argo CD对接CCE集群完成测试、生产部署 [打印本页]

作者: 梦应逍遥    时间: 2024-7-5 12:20
标题: 从安装到配置,教你用Argo CD对接CCE集群完成测试、生产部署
本文分享自华为云社区《Argo CD对接CCE完成不同测试、生产环境业务部署》,作者: 可以交个朋友。
一 背景说明

二 Argo CD安装配置

本章节重要指导完成argo cd的基本部署,相干关联配置后续章节说明。
2.1 ArgoCD部署

Argo CD部署可以参考https://github.com/argoproj/argo-cd/releases/tag/v2.9.3,当前新版本为2.9.3,这里采用Non-HA的方式进行部署演示。
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.9.3/manifests/install.yaml
Argo CD安装完成后如下所示:


修改argocd-server应用的serivce类型为nodeport,通过节点IP+端口访问Argo CD UI界面。
2.2 Argo CD客户端工具使用

Argo CD提供命令行工具,可以通过命令行客户端添加集群,修改登录密码等操作,安装命令如下:
  1. wget https://github.com/argoproj/argo-cd/releases/download/v2.9.3/argocd-linux-amd64
  2. cp argocd-linux-amd64 /usr/local/bin/argocd  
  3. chmod +x /usr/local/bin/argocd
复制代码
查看版本信息:

登录argo,地址为argo地址,用户名为admin,密码获取如下:
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

Argo CD web界面是通过https登录的,通过argocd客户端工具登录和修改初始密码。
argocd login 192.168.1.137:31000 --username admin --password VQME4b7HSdl8REAu
通过以下命令修改admin用户的密码:
argocd account update-password \ --current-password VQME4b7HSdl8REAu \ --new-password Aa123456

2.3 Argo CD添加多集群

多集群管理是通过argo对接不同的k8s集群,然后实现对各个集群上服务的部署和管理。获取到目标集群的config配置信息,根据config配置信息,获取到目标集群的name信息

Argo CD部署在cce-test-prod集群上,可以使用以下命令查看argocd管理的集群
argocd cluster list

可以看到有一个默认的,就是部署argocd所在的集群。这里为了容易区分,重新添加如下集群并设置名称
argocd cluster add internal --kubeconfig /root/.kube/config --name cce-test-cluster

将另一个CCE集群也添加进来,这样就完成了argocd连接多集群的配置。

三 ArgoCD 关联置顶yaml堆栈完成不同环境业务部署

3.1 Argo CD登录及配置git堆栈

通过用户名admin,密码Aa123456登录argo CD界面


查看Argo CD连接的集群信息:

在Settings中添加git堆栈信息:

这里通过https方式连接git堆栈

配置完成后需要确保git堆栈状态是正常连接的

gitlab堆栈目录结构如下,通过文件夹区分不同环境:

 3.2 业务发布



在Applications页面创建APP(应用),根据页面进行填写填写大概选择,这里先部署业务到cce-test-cluster集群。
Application Name: 自界说的应用名。
Project: 使用默认创建好的 default 项目。
SYNC POLICY: 同步方式,可以选择自动大概手动,这里我们选择手动同步。
Repository URL: 项目标 Git 地址。
Revision: 分支名。
Path: yaml 资源文件所在的相对路径。

创建应用后应用状态为OutOfSync(当已部署应用程序的运行状态偏离目标状态时将被argoCD视为OutOfSync)。

点击sync进行同步

部署成功后应用状态为Healthy

查看cce-test-cluster集群应用部署情况:

用类似的配置方法部署应用到cce-prod-cluster集群:

查看cce-prod-cluster集群应用部署情况:

 3.3 跨集群部署业务

这里演示部署nginx应用到两个CCE集群,yaml文件如下:
  1. apiVersion: argoproj.io/v1alpha1
  2. kind: ApplicationSet
  3. metadata:
  4.   name: my-test
  5. spec:
  6.   generators:
  7.   - list:
  8.       elements:
  9.       - cluster: cce-prod
  10.         url: https://192.168.1.112:5443
  11.       - cluster: cce-test
  12.         url: https://192.168.1.132:5443
  13.   
  14.   template:
  15.     metadata:
  16.       name: '{{cluster}}'
  17.     spec:
  18.       project: default
  19.       source:
  20.         repoURL: http://192.168.1.218:32182/devops/argocd.git
  21.         targetRevision: main
  22.         path: '{{cluster}}'
  23.       destination:
  24.         server: '{{url}}'         
  25.         namespace: default
复制代码
该crd实现的结果就是从同一个git堆栈中获取配置清单并部署到cce-test-cluster、cce-prod-cluster这两个集群,path和server中采用变量方式,分别获取list中对应的值。
部署应用:
argocd appset create app.yaml
查看应用状态
argocd app list


然后就可以对这两个应用进行同步操作,同步完成后如下:

点击关注,第一时间相识华为云奇怪技术~
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4