【问题标题】:Is kustomize for k8s backward chaining?kustomize 是否适用于 k8s 反向链接?
【发布时间】:2019-06-03 11:38:40
【问题描述】:

kustomize 的自述文件是这样说的

它就像 make,它所做的事情是在一个文件中声明的,它就像 sed,它发出编辑过的文本。

这个类比是否超出了文件用于声明所需内容这一事实?

或者,kustomize 反向链接是否像 make 那样,它会在确定必须执行的操作之前读取所有命令输入,而不是按顺序工作,然后像 bash 那样通过 shell 脚本逐步执行命令输入?

编辑: Google Kustomize 团队的 Jeff Regan 在他的演讲 Kustomize: Kubernetes Configuration Customization 开始时解释了 kustomize 工作方式的模型。他还展示了如何将 kustomize 进行菊花链式连接,以便一个 kustomize 的输出可以作为另一个 kustomize 的输入。正如下面的 ITChap 所指出的,kustomize 似乎首先收集基础目录中 kustomization.yml 文件中引用的所有资源。它按一系列步骤顺序执行,以交互方式执行所需的替换和转换。根据需要重复替换/转换步骤以完成。然后它在标准输出上吐出生成的 YAML。所以我会说它不像 make 那样向后链接,而是介于两者之间。 HTH。

【问题讨论】:

    标签: kubernetes kustomize


    【解决方案1】:

    到目前为止我注意到的是,kustomize 将首先积累所有基础资源的内容,然后应用来自您的 kustomization.yml 文件的转换。如果您有多个级别的叠加层,它似乎不会将结果从一个级别传递到下一个级别。

    让我们考虑以下几点:

    ./base/pod.yml:

    apiVersion: v1
    kind: Pod
    metadata:
      name: test
    spec:
      containers:
      - name: test
        image: busybox
    

    ./base/kustomization.yml:

    apiVersion: kustomize.config.k8s.io/v1beta1
    kind: Kustomization
    resources:
      - ../pod.yml
    

    ./overlays/l1/kustomization.yml:

    apiVersion: kustomize.config.k8s.io/v1beta1
    kind: Kustomization
    bases:
      - ../base
    nameSuffix: "-l1"
    

    ./overlays/l2/kustomization.yml:

    apiVersion: kustomize.config.k8s.io/v1beta1
    kind: Kustomization
    bases:
      - ../l1
    nameSuffix: "-l2"
    

    运行 kustomize build overlays/l2 时,您将得到一个名为 test-l1-l2 的 pod,正如预期的那样。

    但是,如果您尝试修补基本 pod,则必须使用以下方法引用该 pod:

    patchesJson6902:
    - target:
        version: v1
        kind: Pod
        name: test
      path: patch.yml
    

    在您的./overlays/l1/kustomization.yml 但也./overlays/l2/kustomization.yml。在应用 l2 的补丁时,引用的资源仍然是 test 而不是 test-l1

    我不太了解 kustomize,无法理解其背后的意图,但这些是我的观察。希望它能回答你的问题。

    PS:这可能会随着https://github.com/kubernetes-sigs/kustomize/issues/1036而改变

    【讨论】:

    • 感谢@ITChap 的回答。请参阅我上面的说明。
    猜你喜欢
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 2021-08-05
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多