首页 > 其他分享 >从安装到配置,教你用Argo CD对接CCE集群完成测试、生产部署

从安装到配置,教你用Argo CD对接CCE集群完成测试、生产部署

时间:2024-07-05 10:11:05浏览次数:17  
标签:部署 教你用 argocd CD cluster 集群 Argo

本文分享自华为云社区《Argo CD对接CCE完成不同测试、生产环境业务部署》,作者: 可以交个朋友。

一 背景说明

  • Argo CD是用于Kubernetes的声明性GitOps持续交付工具,遵循GitOps模式,该模式使用Git仓库作为定义所需应用程序状态的真实来源。
  • Argo CD可在指定的目标环境中自动部署所需的应用程序状态,应用程序部署可以在Git提交时跟踪对分支,标签的更新,或固定到清单的特定版本。
  • 本文档使用两个CCE集群(cce-test-cluster、cce-prod-cluster)模拟测试及生产环境,使用gitlab仓库作为应用部署yaml文件存储仓库,通过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安装完成后如下所示:

image.png

image.png

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

2.2 Argo CD客户端工具使用

Argo CD提供命令行工具,可以通过命令行客户端添加集群,修改登录密码等操作,安装命令如下:

wget https://github.com/argoproj/argo-cd/releases/download/v2.9.3/argocd-linux-amd64 
cp argocd-linux-amd64 /usr/local/bin/argocd  
chmod +x /usr/local/bin/argocd

查看版本信息:

image.png

登录argo,地址为argo地址,用户名为admin,密码获取如下:

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

image.png

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

image.png

2.3 Argo CD添加多集群

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

image.png

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

argocd cluster list

image.png

可以看到有一个默认的,就是部署argocd所在的集群。这里为了容易区分,重新添加如下集群并设置名称

argocd cluster add internal --kubeconfig /root/.kube/config --name cce-test-cluster

image.png

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

image.png

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

3.1 Argo CD登录及配置git仓库

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

image.png

image.png

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

image.png

在Settings中添加git仓库信息:

image.png

这里通过https方式连接git仓库

image.png

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

image.png

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

image.png

 

3.2 业务发布

image.png

在Applications页面创建APP(应用),根据页面进行填写填写或者选择,这里先部署业务到cce-test-cluster集群。

Application Name: 自定义的应用名。

Project: 使用默认创建好的 default 项目。

SYNC POLICY: 同步方式,可以选择自动或者手动,这里我们选择手动同步。

Repository URL: 项目的 Git 地址。

Revision: 分支名。

Path: yaml 资源文件所在的相对路径。

image.png

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

image.png

点击sync进行同步

image.png

部署成功后应用状态为Healthy

image.png

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

image.png

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

image.png

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

image.png

 

3.3 跨集群部署业务

  • ApplicationSet控制器是一个Kubernetes控制器,它增加了对ApplicationSet CustomResourceDefinition (CRD)的支持。这个控制器/CRD可以实现跨大量集群和单节点管理Argo CD应用程序的自动化和更大的灵活性。从Argo CD v2.3开始,Argo CD集成了ApplicationSet控制器。
  • ApplicationSet控制器提供:通过Argo CD使用单个Kubernetes清单来针对多个Kubernetes集群的能力;通过Argo CD使用单个Kubernetes清单从一个或多个Git存储库部署多个应用程序的能力。
  • 通过UI界面部署应用时只能选择单个集群,无法进行多集群业务部署。

这里演示部署nginx应用到两个CCE集群,yaml文件如下:

apiVersion: argoproj.io/v1alpha1 
kind: ApplicationSet 
metadata: 
  name: my-test 
spec: 
  generators: 
  - list: 
      elements: 
      - cluster: cce-prod 
        url: https://192.168.1.112:5443 
      - cluster: cce-test 
        url: https://192.168.1.132:5443 
  
  template: 
    metadata: 
      name: '{{cluster}}' 
    spec: 
      project: default 
      source: 
        repoURL: http://192.168.1.218:32182/devops/argocd.git 
        targetRevision: main 
        path: '{{cluster}}' 
      destination: 
        server: '{{url}}'         
        namespace: default

该crd实现的结果就是从同一个git仓库中获取配置清单并部署到cce-test-clustercce-prod-cluster这两个集群,path和server中采用变量方式,分别获取list中对应的值。

部署应用:

argocd appset create app.yaml

查看应用状态

argocd app list

image.png

image.png

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

image.png

点击关注,第一时间了解华为云新鲜技术~

 

标签:部署,教你用,argocd,CD,cluster,集群,Argo
From: https://www.cnblogs.com/huaweiyun/p/18285205

相关文章

  • 【权威出刊|投稿优惠】2024年城市工程与低碳发展国际会议(ICUELCD 2024)
    2024年城市工程与低碳发展国际会议2024InternationalConferenceonUrbanEngineeringandLowCarbonDevelopment【1】大会信息会议简称:ICUELCD2024大会时间:点击查看大会地点:中国·成都截稿时间:点击查看审稿通知:投稿后2-3日内通知会议官网:http://www.icuelcd.co......
  • 【国赛赛题详解】2024年数学建模国赛ABCDEF题(点个关注,后续会更新)
        您的点赞收藏是我继续更新的最大动力!一定要点击如下的蓝色字体链接,那是获取资料的入口!点击链接加入群聊【2024国赛资料合集】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=eQt5WRIvc5-fogZRrrahAhbqDa2nKfW8&authKey=%2BqQfThTxNnhw5LGJFRIcneF8JXBj1ufd2K01UpKPrpcg......
  • 5分钟教你用AI把老照片动起来,别再去花49块9的冤枉钱了
    文章目录需要的工具最近,AI视频在各大平台上,又火了。只是火的形式,变成了将老照片动起来,打情感牌,或者做很多经典电视剧的再整活。直接把可灵的生成时间,从以前的4分钟,生生的干成了20分钟。火的原因,一方面是因为快手可灵的图生视频正式上线,给大家提供了一个工具的......
  • k8s组件之Etcd
    一、ectd数据库介绍etcd 是CoreOS团队于2013年6月发起的开源项目, 是一种开源的分布式键值存储库,用于保存和管理分布式系统保持运行所需的关键信息。 etcd基于Raft共识算法而构建,可确保集群中所有节点之间的数据存储一致性。etcd 采用全新的设计,具有以下特性:......
  • github搭建图床思源发布博客CDN加速
     参考:https://www.cnblogs.com/java-six/p/18157901github创建图床新建存储库​​创建名称-选择public(公共),其他不用动直接下方创建​​点头像选择settings(设置)-侧边栏滑到下方<>Developersettings(开发者设置)​​选择tokens(classic)-Generatenewtoken(生成......
  • Python(netCDF4库)读取.nc文件(NetCDF气象数据文件)
    importnetCDF4asncimportnumpyasnpimportmatplotlib.pyplotaspltimportcartopy.crsasccrsdefplot_currents(file_path,variable_name,lon_name,lat_name):"""绘制洋流并保存为JPEG图片。参数:file_path(str):NetCDF文件路径。v......
  • 电源测试DCDC
    测试项目 1.输出纹波  2.动态响应Transient3.负载调整率LoadRegulation4.JitterVdsSpikeMOS管的Vds电压效率Efficency开机电源波形RiseTime&OverShootFallTime&UnderShoot下电波形OCPSCPOVP 时序PowerSequency线性调整率LineRegula......
  • Jenkins 中 cd 与 dir
    Jenkinsfile如下:pipeline{agent{label'master'}stages{stage('tttt'){steps{sh"pwd"sh"mkdiraaa"dir('aaa'){......
  • 【国赛赛题详解】2024年数学建模国赛ABCDEF题(点个关注,后续会更新)
        您的点赞收藏是我继续更新的最大动力!一定要点击如下的蓝色字体链接,那是获取资料的入口!点击链接加入群聊【2024国赛资料合集】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=eQt5WRIvc5-fogZRrrahAhbqDa2nKfW8&authKey=%2BqQfThTxNnhw5LGJFRIcneF8JXBj1ufd2K01UpKPrpcg......
  • 【国赛赛题详解】2024年数学建模国赛ABCDEF题(点个关注,后续会更新)
        您的点赞收藏是我继续更新的最大动力!一定要点击如下的蓝色字体链接,那是获取资料的入口!点击链接加入群聊【2024国赛资料合集】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=eQt5WRIvc5-fogZRrrahAhbqDa2nKfW8&authKey=%2BqQfThTxNnhw5LGJFRIcneF8JXBj1ufd2K01UpKPrpcg......