【问题标题】:How to share resources/patches with multiple overlays using kustomize?如何使用 kustomize 与多个叠加层共享资源/补丁?
【发布时间】:2021-12-04 21:57:10
【问题描述】:

我有一个使用 kustomize 部署到多个环境的 kube-prometheus。

kube-prometheus 是一个基础,每个环境都是一个覆盖。 假设我想将仪表板部署到叠加层,这意味着我需要为每个叠加层部署相同的 ConfigMap 和相同的补丁。

理想情况下,我想避免更改基础,因为它是在我的回购之外声明的,并保持干燥,而不是在整个地方复制相同的配置。

有没有办法做到这一点?

文件夹结构:

/base/
     /kube-prometheus/
/overlays/
     /qa/       <--- 
     /dev/      <--- I want to share resources+patches between those
     /staging/  <---

【问题讨论】:

    标签: kubernetes kustomize


    【解决方案1】:

    正确的做法是使用组件

    组件可以将资源和补丁封装在一起。 就我而言,我想添加 ConfigMaps(资源)并将这个 ConfigMaps 挂载到我的部署(补丁)而不重复补丁。

    所以我的叠加层看起来像这样:

    apiVersion: kustomize.config.k8s.io/v1beta1
    kind: Kustomization
    
    resources:
      - ../../base/kube-prometheus/ # Base
    
    components:
      - ../../components/grafana-aws-dashboards/ # Folder with kustomization.yaml that includes both resources and patches
    

    这是组件:

    apiVersion: kustomize.config.k8s.io/v1alpha1
    kind: Component
    
    resources:
    - grafana-dashboard-aws-apigateway.yaml
    - grafana-dashboard-aws-auto-scaling.yaml
    - grafana-dashboard-aws-ec2-jwillis.yaml
    - grafana-dashboard-aws-ec2.yaml
    - grafana-dashboard-aws-ecs.yaml
    - grafana-dashboard-aws-elasticache-redis.yaml
    - grafana-dashboard-aws-elb-application-load-balancer.yaml
    - grafana-dashboard-aws-elb-classic-load-balancer.yaml
    - grafana-dashboard-aws-lambda.yaml
    - grafana-dashboard-aws-rds-os-metrics.yaml
    - grafana-dashboard-aws-rds.yaml
    - grafana-dashboard-aws-s3.yaml
    - grafana-dashboard-aws-storagegateway.yaml
    
    patchesStrategicMerge:
    - grafana-mount-aws-dashboards.yaml
    

    这里记录了这种方法:
    https://kubectl.docs.kubernetes.io/guides/config_management/components/

    【讨论】:

      【解决方案2】:

      在您的主自定义或一些顶级覆盖中,您应该能够调用一个公共文件夹或存储库。

      你有没有尝试过这样的事情:

      resources:
        - github.com/project/repo?ref=x.y.z
      

      如果这不能回答您的问题,您能否编辑您的帖子并给我们一些背景信息?

      【讨论】:

      • 是的,当然我需要参考我的基础资源和其他资源,关键是我想要创建 configmap 和补丁部署的 kustomization 文件,以便为我想要的每个叠加层安装它们。跨度>
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-07
      • 2020-12-15
      • 2022-07-21
      • 2021-05-22
      • 1970-01-01
      • 1970-01-01
      • 2011-06-06
      相关资源
      最近更新 更多