26.云原生ArgoCD高级之ApplicationSet

2024-02-05 12:28

本文主要是介绍26.云原生ArgoCD高级之ApplicationSet,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

云原生专栏大纲

文章目录

    • ApplicationSet介绍
    • ApplicationSet 特性
    • ApplicationSet 安装
    • ApplicationSet 工作原理
    • ApplicationSet 生成器
      • 列表类型生成器
      • 集群生成器
        • 基础使用方法
        • Label Selector 指定集群
        • Values 字段传递额外的参数
      • git生成器
        • git目录生成参数
        • 排除目录
        • git文件生成器
        • 矩阵生成器

ApplicationSet介绍

Argo CD的ApplicationSet是一种功能强大的工具,用于在Kubernetes集群中批量创建和管理应用程序。它允许你使用模板化的方式定义和部署大量相似的应用程序实例。
ApplicationSet基于Kustomize和Kubernetes的自定义资源(Custom Resource Definition,CRD)机制实现。它使用模板和参数化配置来生成一组应用程序实例,每个实例都可以根据模板中定义的规则进行个性化配置。
使用ApplicationSet,你可以实现以下功能:

  1. 批量部署:通过定义一个模板和一组参数,可以轻松地批量创建和部署多个应用程序实例。这对于需要在不同环境或不同命名空间中部署相似应用程序的场景非常有用。
  2. 参数化配置:ApplicationSet支持在模板中使用参数,并根据参数值生成实际的应用程序配置。这样可以根据需要自定义每个应用程序实例的配置,例如名称、标签、镜像版本等。
  3. 动态更新:当模板或参数发生变化时,ApplicationSet能够检测到变化并自动更新相应的应用程序实例。这样可以确保应用程序的配置与模板保持同步,并自动应用任何更改。
  4. 声明式管理:与Argo CD的其他功能一样,ApplicationSet采用声明式的管理方式。你可以通过Git仓库中的应用程序定义文件来描述和管理ApplicationSet,实现版本控制和可追溯性。

总之,Argo CD的ApplicationSet提供了一种强大的方式来批量创建和管理应用程序实例。它通过模板化和参数化配置,使得在Kubernetes集群中部署大量相似应用程序变得更加简单和高效。

ApplicationSet 特性

image.png

ApplicationSet 安装

官网中有安装方式

kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/applicationset/v0.4.1/manifests/install.yaml

ApplicationSet 工作原理

image.png

ApplicationSet并不会操作kubernetes资源
除ArgoCD 部署的集群外,ApplicationSet 不会连接其他集群
除ArgoCD部署的命名空间外,ApplicationSet不与其他命名空间交互

ApplicationSet 是 Argo CD 中的一种特殊资源类型,它允许你通过模板化和参数化的方式来创建和管理多个应用程序。ApplicationSet 的原理是根据定义的模板和参数生成一组具体的应用程序资源,并将其提交给 Argo CD 进行处理和部署。
下面是 ApplicationSet 的基本原理:

  1. 模板定义:首先,你需要定义一个 ApplicationSet 模板,它描述了要创建的应用程序的结构和配置。模板可以包含任意数量的 Kubernetes 资源定义,如 Deployment、Service、ConfigMap 等。
  2. 参数化:在模板中,你可以使用参数来标记需要根据不同实例进行替换的部分。这些参数可以是静态的值,也可以是基于函数的动态值,如生成唯一标识符、从外部数据源获取值等。
  3. 实例化:基于模板和参数,ApplicationSet 将生成一组具体的应用程序实例。每个实例都是根据模板中的参数替换而来,从而生成一个独立的应用程序资源定义。
  4. 应用程序创建和管理:生成的应用程序实例将被提交给 Argo CD 进行处理和部署。Argo CD 将根据实例的定义,自动创建和管理相应的应用程序资源。这包括应用程序的同步、状态监控、自动化部署等。

通过使用 ApplicationSet,你可以通过一次定义和管理多个相似的应用程序。它可以帮助你提高工作效率,减少手动操作和重复工作。例如,你可以定义一个模板,根据不同的参数值生成多个相似的应用程序,如不同环境的部署、多个命名空间的部署等。

ApplicationSet 生成器

image.png

列表类型生成器

根据提供的列表参数生成模板
image.png
上述list指定部署到两个k8s集群
image.png

集群生成器

根据Argocd管理的集群自动生成集群参数

基础使用方法

下述clusters不填写表示应用部署到argocd中配置的全部k8s集群

image.png

Label Selector 指定集群

部署到指定k8s集群,下述cluster是外部集群

image.png
怎么确定是填写cluster?查看argocd命名空间下保密字典(Secret),添加外部集群会生成一个Secret
image.png
image.png

Values 字段传递额外的参数

image.png
部署后查看应用详情
image.png

git生成器

Git 仓库中的文件或文件夹生成参数

  1. Git 目录生成参数
  2. 排除不需要的目录
      1. Git目录生成器会自动排除,开头的文件夹;
    1. 2,通过exclude选项排除单个目录;
  3. Git文件生成器
    1. 根据其内容生成参数。JSON字段被扁平化为键值对。
    2. 还提供了Git目录生成器的参数{path)},{path.basename]

git目录生成参数

官方示例地址:https://github.com/argoproj/applicationset
image.png

  1. git会根据上述两个目录生成对应参数
  2. path是上述两个文件夹路径
  3. path.basename上述两个文件夹名称

image.png

排除目录

image.png
第二个目录需要排除
image.png

git文件生成器

image.png
json文件中配置address地址有问题,若是配置问题如何排除?

  1. 查看argocd-applicationset-controller容器日志

image.png
image.png

矩阵生成器

组合两个子生成器的参数,做矩阵运算
image.png

image.png

这篇关于26.云原生ArgoCD高级之ApplicationSet的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/680908

相关文章

深入解析Spring TransactionTemplate 高级用法(示例代码)

《深入解析SpringTransactionTemplate高级用法(示例代码)》TransactionTemplate是Spring框架中一个强大的工具,它允许开发者以编程方式控制事务,通过... 目录1. TransactionTemplate 的核心概念2. 核心接口和类3. TransactionT

k8s部署MongDB全过程

《k8s部署MongDB全过程》文章介绍了如何在Kubernetes集群中部署MongoDB,包括环境准备、创建Secret、创建服务和Deployment,并通过Robo3T工具测试连接... 目录一、环境准备1.1 环境说明1.2 创建 namespace1.3 创建mongdb账号/密码二、创建Sec

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-

Python中列表的高级索引技巧分享

《Python中列表的高级索引技巧分享》列表是Python中最常用的数据结构之一,它允许你存储多个元素,并且可以通过索引来访问这些元素,本文将带你深入了解Python列表的高级索引技巧,希望对... 目录1.基本索引2.切片3.负数索引切片4.步长5.多维列表6.列表解析7.切片赋值8.删除元素9.反转列表

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

Linux下MySQL8.0.26安装教程

《Linux下MySQL8.0.26安装教程》文章详细介绍了如何在Linux系统上安装和配置MySQL,包括下载、解压、安装依赖、启动服务、获取默认密码、设置密码、支持远程登录以及创建表,感兴趣的朋友... 目录1.找到官网下载位置1.访问mysql存档2.下载社区版3.百度网盘中2.linux安装配置1.

90、k8s之secret+configMap

一、secret配置管理 配置管理: 加密配置:保存密码,token,其他敏感信息的k8s资源 应用配置:我们需要定制化的给应用进行配置,我们需要把定制好的配置文件同步到pod当中容器 1.1、加密配置: secret: [root@master01 ~]# kubectl get secrets ##查看加密配置[root@master01 ~]# kubectl get se

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟