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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/371146.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NLP入门系列—词嵌入 Word embedding

NLP入门系列—词嵌入 Word embedding 2013年,Word2Vec横空出世,自然语言处理领域各项任务效果均得到极大提升。自从Word2Vec这个神奇的算法出世以后,导致了一波嵌入(Embedding)热,基于句子、文档表达的wor…

物联网与智慧景区的未来:机遇与挑战并存

随着科技的不断发展,物联网技术在智慧景区中的应用越来越广泛,为旅游业带来了巨大的变革。然而,在物联网与智慧景区的未来发展中,机遇与挑战并存。本文将探讨物联网与智慧景区面临的机遇和挑战,并提出应对措施&#xf…

【复现】WordPress html5-video-player SQL 注入漏洞_39

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 在WordPress中播放各种视频文件。一个简单,可访问,易于使用和完全可定制的视频播放器,适用于所…

[开源]GPT Boss – 用图形化的方式部署您的私人GPT镜像网站

在这个以数据和智能为核心的时代,掌握最新的技术趋势是每个企业和个人都需要做到的。这就是GPT Boss存在的意义:一个基于OpenAI技术的一站式GPT应用解决方案。 自2022年起,GPT Boss团队便投身于人工智能领域,将OpenAI的GPT模型带给…

回归预测 | Matlab实现WOA-CNN-LSTM-Attention鲸鱼算法优化卷积长短期记忆网络注意力多变量回归预测(SE注意力机制)

回归预测 | Matlab实现WOA-CNN-LSTM-Attention鲸鱼算法优化卷积长短期记忆网络注意力多变量回归预测(SE注意力机制) 目录 回归预测 | Matlab实现WOA-CNN-LSTM-Attention鲸鱼算法优化卷积长短期记忆网络注意力多变量回归预测(SE注意力机制&…

MATLAB多元线性回归对信息化进行相关性分析(附完整数据和代码)

MATLAB代码: clc;clear all;close all;warning off;%关闭警报 %% 多元线性回归 dataxlsread(归一化数据.xls); Inputdatadata(:,2:end);%载入输入数据 Outputdatadata(:,1);%载入输出数据 % index11:length(Outputdata);%顺序样本 index1randperm(length(Outputdata));%随机样…

Multisim14.0仿真(五十)基于CD4518的计数器设计

一、CD4518简介: CD4518是二、十进制(8421编码)同步加计数器,内含两个单元的加计数器。每单个单元有两个时钟输入端CLK和EN,可用时钟脉冲的上升沿或下降沿触发。可知,若用ENABLE信号下降沿触发,触发信号由EN端输入,CLK端置“0”;若用CL℃K信号上升沿触发,触发信号由C…

算法练习-三数之和(思路+流程图+代码)

难度参考 难度:中等 分类:数组 难度与分类由我所参与的培训课程提供,但需要注意的是,难度与分类仅供参考。且所在课程未提供测试平台,故实现代码主要为自行测试的那种,以下内容均为个人笔记,旨在…

视觉SLAM十四讲学习笔记(一)初识SLAM

目录 前言 一、传感器 1 传感器分类 2 相机 二、经典视觉 SLAM 框架 1 视觉里程计 2 后端优化 3 回环检测 4 建图 5 SLAM系统 三、SLAM 问题的数学表述 四、Ubuntu20.04配置SLAM十四讲 前言 SLAM: Simultaneous Localization and Mapping 同时定位与地图构建&#…

VScode+PlatformIO 物联网Iot开发平台环境搭建

1.vscode (1)安装platformIO插件 (2)新建项目或导入已有的arduino项目 Name:需要填写你项目的名称; Board:点开是一个下拉框,但是可以输入你想要的开发板,这里选择&quo…

24.Android中的列表--ListView

ListView 1.简单列表--ArrayAdapter <?xml version"1.0" encoding"utf-8"?> <ScrollView xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tools&qu…

大数据分析|大数据分析的十大应用领域

有许多技术可用于分析大数据。这项工作介绍了BDA适用的各种分析技术领域如下。 &#xff08;1&#xff09;社会分析 社交分析是实时数据分析中一个重要且不断发展的分析方法。它分为社交网络(例如&#xff0c;Facebook和LinkedIn)&#xff0c;博客(例如&#xff0c;Blogger和W…

ERP 系统架构的设计与实践总结

企业资源计划&#xff08;ERP&#xff09;系统是一种集成多个业务功能的综合性软件解决方案。在设计和实践 ERP 系统架构时&#xff0c;需要考虑诸多因素&#xff0c;以确保系统能够满足企业的需求&#xff0c;并提供高效、可靠、安全的服务。本文将介绍一些关键的设计原则和实…

101 C++内存高级话题 内存池概念,代码实现和详细分析

零 为什么要用内存池&#xff1f; 从前面的知识我们知道&#xff0c;当new 或者 malloc 的时候&#xff0c;假设您想要malloc 10个字节&#xff0c; char * pchar new char[10]; char *pchar1 malloc(10); 实际上编译器为了 记录和管理这些数据&#xff0c;做了不少事情&…

vue中 日期选择--本日、本周、本月、本年选择器实现(基于elementui)

效果图&#xff1a; 由于项目需要图标统计展示&#xff0c;需要日期美观化选择如上图所示&#xff0c;代码如下&#xff1a; <template><div class"el-page body"><el-row><el-col class"statistic-analysis-report-style" :span&qu…

【Linux进程间通信】匿名管道

【Linux进程间通信】匿名管道 目录 【Linux进程间通信】匿名管道进程间通信介绍进程间通信目的进程间通信发展进程间通信分类 管道用fork来共享管道原理站在文件描述符角度——深度理解管道站在内核角度——管道本质 匿名管道在myshell中添加管道的实现&#xff1a;管道读写规则…

【iOS ARKit】环境反射

环境反射 在使用 iOS AR中 渲染虚拟物体时&#xff0c;RealityKit 默认使用了一个简单的天空盒&#xff08;Skybox&#xff0c;即IBL环境资源贴图&#xff09;&#xff0c;所有带反射材质的物体默认会对天空盒产生反射。 但在AR 中&#xff0c;使用IBL 技术实现的天空盒反射有一…

【快速上手QT】01-QWidgetQMainWindow QT中的窗口

总所周知&#xff0c;QT是一个跨平台的C图形用户界面应用程序开发框架。它既可以开发GUI程序&#xff0c;也可用于开发非GUI程序&#xff0c;当然我们用到QT就是要做GUI的&#xff0c;所以我们快速上手QT的第一篇博文就讲QT的界面窗口。 我用的IDE是VS2019&#xff0c;使用QTc…

神经网络 | 基于 CNN 模型实现土壤湿度预测

Hi&#xff0c;大家好&#xff0c;我是半亩花海。在现代农业和环境监测中&#xff0c;了解土壤湿度的变化对于作物生长和水资源管理至关重要。通过深度学习技术&#xff0c;特别是卷积神经网络&#xff0c;我们可以利用过去的土壤湿度数据来预测未来的湿度趋势。本文将使用 Pad…

Postgresql体系结构

client连接PostgreSQL过程&#xff1a; 1、客户端发起请求 2、主服务postmaster进程负责服务器是否接受客户端的host通信认证&#xff0c;服务器对客户端进行身份鉴别 3、主服务进程为该客户端单独fork一个客户端工作进程postgres 4、客户端与postgres进程建立通信连接&#xf…