从安装到配置,教你用Argo CD对接CCE集群完成测试、生产部署
本文分享自华为云社区《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安装完成后如下所示:
修改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
查看版本信息:
登录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 跨集群部署业务
- 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-cluster
、cce-prod-cluster
这两个集群,path和server中采用变量方式,分别获取list中对应的值。
部署应用:
argocd appset create app.yaml
查看应用状态
argocd app list
然后就可以对这两个应用进行同步操作,同步完成后如下:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
寻找适合编写静态分析规则的语言
本文分享自华为云社区《寻找适合编写静态分析规则的语言》,作者:Uncle_Tom。 1. 程序静态分析的作用 程序的静态分析是一种在不运行程序的情况下,通过分析程序代码来发现潜在的错误、安全漏洞、性能问题以及不符合编码规范的情况的技术。 程序的静态分析在现代软件安全中扮演着至关重要的角色。以下是静态分析在软件安全中的一些关键作用: 代码质量保证: 静态分析有助于确保代码符合安全编码标准和最佳实践,从而提高代码的质量和安全性。 参考:代码的安全检视 合规性检查: 许多行业标准和法规要求对软件进行安全合规性检查。静态分析工具可以帮助组织确保其软件产品符合这些标准和法规要求。 参考:一图看懂软件缺陷检查涉及的内容 漏洞检测: 静态分析工具可以在代码编写阶段检测潜在的安全漏洞,如SQL注入、跨站脚本攻击(XSS)、缓冲区溢出等。 参考:2023年最具威胁的25种安全漏洞(CWE TOP 25) 减少开发成本: 通过在开发早期阶段发现问题,静态分析可以减少后期修复的成本和时间,因为后期修复通常成本更高。 参考:构建DevSecOps中的代码三层防护体系 2. 静态分析工具的业务痛点 随着现在工程...
- 下一篇
结合RNN与Transformer双重优点,深度解析大语言模型RWKV
本文分享自华为云社区《【云驻共创】昇思MindSpore技术公开课 RWKV 模型架构深度解析》,作者:Freedom123。 一、前言 Transformer模型作为一种革命性的神经网络架构,于2017年由Vaswani等人 提出,并在诸多任务中取得了显著的成功。Transformer的核心思想是自注意力机制,通过全局建模和并行计算,极大地提高了模型对长距离依赖关系的建模能力。但是Transformer在处理长序列时面临内存和计算复杂度的问题,因为其复杂度与序列长度呈二次关系一直为业内人员所诟病。今天我们学习的RWKV,它作为对Transformers模型的替代,正在引起越来越多的开发人员的关注。RWKV模型以简单、高效、可解释性强等特点,成为自然语言处理领域的新宠。下面让我们一起来学习RWKV模型。 二、RWKV简介 RWKV(Receptance Weighted Key Value)是一个结合了RNN与Transformer双重优点的模型架构,由香港大学物理系毕业的彭博首次提出。其名称源于其 Time-mix 和 Channel-mix 层中使用的四个主要模型元素:R(Rece...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装