gpt4 book ai didi

kubernetes - kustomize 是否适用于 k8s 反向链接?

转载 作者:行者123 更新时间:2023-12-03 13:03:23 24 4
gpt4 key购买 nike

kustomize 的 README 是这样说的

It's like make, in that what it does is declared in a file, and it's like sed, in that it emits edited text.

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

或者,kustomize 反向链接是否像 make 一样,它在计算出它必须执行的操作之前读取所有命令输入,而不是像 bash 通过 shell 脚本一样按顺序工作并单步执行命令输入?

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

最佳答案

目前我注意到的是,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 而改变

关于kubernetes - kustomize 是否适用于 k8s 反向链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56426560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com