【GitOps】Argo CD app of apps

Argo CD app of apps

文章目录

一、什么是App Of Apps

  • 你可以创建一个应用程序来创建其他应用程序,而其他应用程序又可以创建其他应用程序。这允许你以声明方式管理一组可以协同部署和配置的应用程序。这就是App Of Apps
  • 官方文档:https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#app-of-apps

1.1、创建App Of Apps

bash 复制代码
# 项目结构
[root@master gitops-appofapps]# tree
.
├── application1
│   ├── deploy_nginx.yaml
│   └── service_nginx.yaml
├── application2
│   ├── deploy_httpd.yaml
│   └── service_httpd.yaml
├── application3
│   ├── deploy_tomcat.yaml
│   └── service_tomcat.yaml
├── apps
│   ├── application1.yaml
│   ├── application2.yaml
│   └── application3.yaml
└── root-app
    └── root-application.yaml

5 directories, 10 files

1.2、创建子项目app

  • application1
bash 复制代码
[root@master apps]# cat application1.yaml 
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: application1
  namespace: argocd
spec:
  destination:
    namespace: application1
    server: https://192.168.93.145:6443
  project: default
  source:
    path: application1
    repoURL: http://192.168.93.102/root/gitops-appofapps.git
    targetRevision: main
    directory:
      recurse: true
  syncPolicy:
    syncOptions:
      - CreateNamespace=true
  • application2
bash 复制代码
[root@master apps]# cat application2.yaml 
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: application2
  namespace: argocd
spec:
  destination:
    namespace: application2
    server: https://192.168.93.145:6443
  project: default
  source:
    path: application2
    repoURL: http://192.168.93.102/root/gitops-appofapps.git
    targetRevision: main
    directory:
      recurse: true
  syncPolicy:
    syncOptions:
      - CreateNamespace=true
  • application3
bash 复制代码
[root@master apps]# cat application3.yaml 
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: application3
  namespace: argocd
spec:
  destination:
    namespace: application3
    server: https://192.168.93.145:6443
  project: default
  source:
    path: application3
    repoURL: http://192.168.93.102/root/gitops-appofapps.git
    targetRevision: main
    directory:
      recurse: true
  syncPolicy:
    syncOptions:
      - CreateNamespace=true

1.3、创建部署资源清单

  • application1
bash 复制代码
[root@master gitops-appofapps]# ls application1
deploy_nginx.yaml  service_nginx.yaml
  • application2
bash 复制代码
[root@master gitops-appofapps]# ls application2
deploy_httpd.yaml  service_httpd.yaml
  • application3
bash 复制代码
[root@master gitops-appofapps]# ls application3
deploy_tomcat.yaml  service_tomcat.yaml

1.4、创建Application

bash 复制代码
[root@master gitops-appofapps]# cd root-app/
[root@master root-app]# kubectl apply -f root-application.yaml 
application.argoproj.io/root-application created

1.5、Web UI界面查看

  • 点击SYNC

  • 点击SYNC按钮同步后,自动新建了3Application服务

  • 3Application服务分别点击SYNC按钮进行同步

  • 使用kubectl查看集群详细信息

bash 复制代码
# 查看 Namespace
[root@master root-app]# kubectl get ns
NAME              STATUS   AGE
application1      Active   12m
application2      Active   12m
application3      Active   12m
argocd            Active   43m
default           Active   28d
ingress-nginx     Active   41m
kube-node-lease   Active   28d
kube-public       Active   28d
kube-system       Active   28d
bash 复制代码
# 查看 3 个 Application服务状态
[root@master root-app]# kubectl get pod,svc -n application1
NAME                                    READY   STATUS    RESTARTS   AGE
pod/nginx-deployment-54b6f7ddf9-kfzqd   1/1     Running   0          13m

NAME            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
service/nginx   ClusterIP   10.107.128.102   <none>        801/TCP   13m
[root@master root-app]# kubectl get pod,svc -n application2
NAME                                    READY   STATUS    RESTARTS   AGE
pod/httpd-deployment-5fcbcd9667-g8dct   1/1     Running   0          13m

NAME            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
service/httpd   ClusterIP   10.111.121.145   <none>        802/TCP   13m
[root@master root-app]# kubectl get pod,svc -n application3
NAME                                     READY   STATUS    RESTARTS   AGE
pod/tomcat-deployment-865c47d857-26tbn   1/1     Running   0          13m

NAME             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
service/tomcat   ClusterIP   10.105.167.20   <none>        803/TCP   13m
相关推荐
Elasticsearch13 小时前
通用表达式语言 ( CEL ): CEL 输入如何改进 Elastic Agent 集成中的数据收集
elasticsearch
武子康15 小时前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
阿里云云原生1 天前
阿里云获评 Agentic AI 开发平台领导者,函数计算 AgentRun 赢下关键分!
云原生
武子康2 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
阿里云云原生2 天前
MSE Nacos Prompt 管理:让 AI Agent 的核心配置真正可治理
微服务·云原生
阿里云云原生2 天前
当 AI Agent 接管手机:移动端如何进行观测
云原生·agent
阿里云云原生2 天前
AI 原生应用开源开发者沙龙·深圳站精彩回顾 & PPT下载
云原生
阿里云云原生2 天前
灵感启发:日产文章 100 篇,打造“实时热点洞察”引擎
云原生
郑州光合科技余经理2 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
DianSan_ERP2 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet