在 Kustomize 中,kustomization.yaml 文件是用于定义和管理自定义部署的配置文件。其中 configurations 字段用于指定自定义变量或配置的集合。
通过在 kustomization.yaml 文件中定义 configurations 字段,您可以将不同的配置组合起来,并为每个配置提供不同的值。这样可以根据需要轻松地创建多个部署变体,而无需修改实际的资源文件。
例如,假设有一个名为 my-deployment.yaml 的资源文件,其中包含一个环境变量需要根据不同环境进行设置。您可以在 kustomization.yaml 文件中定义多个 configurations 条目,并为每个条目提供不同的值,如下所示:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
configurations:
- name: development
vars:
- name: ENVIRONMENT
objref:
kind: Deployment
name: my-deployment
fieldref:
fieldpath: spec.template.spec.containers[0].env[0].value
values:
- dev
- name: production
vars:
- name: ENVIRONMENT
objref:
kind: Deployment
name: my-deployment
fieldref:
fieldpath: spec.template.spec.containers[0].env[0].value
values:
- prod
...
上述示例中定义了两个 configurations: development 和 production。每个配置都包含一个名为 ENVIRONMENT 的变量,并将其值设置为 dev 和 prod。
在资源文件中,您可以使用 $ENVIRONMENT 来引用这个配置变量,并根据不同的配置生成最终的部署清单。例如,在 my-deployment.yaml 文件中:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
template:
spec:
containers:
- name: my-container
image: my-image:latest
env:
- name: ENVIRONMENT
value: $ENVIRONMENT
...
通过在 Kustomize 中使用 configurations 字段,您可以轻松地创建和管理多个部署变体,并根据需要提供不同的配置值。
内容由零声教学AI助手提供,问题来源于学员提问




