kustomize-basics
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseKustomize Basics
Kustomize 基础
Kubernetes configuration customization without templates.
无需模板即可自定义Kubernetes配置。
Basic Structure
基本结构
app/
├── base/
│ ├── kustomization.yaml
│ ├── deployment.yaml
│ └── service.yaml
└── overlays/
├── development/
│ └── kustomization.yaml
└── production/
└── kustomization.yamlapp/
├── base/
│ ├── kustomization.yaml
│ ├── deployment.yaml
│ └── service.yaml
└── overlays/
├── development/
│ └── kustomization.yaml
└── production/
└── kustomization.yamlBase Kustomization
基础Kustomization配置
yaml
undefinedyaml
undefinedbase/kustomization.yaml
base/kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- service.yaml
commonLabels:
app: myapp
namePrefix: myapp-
images:
- name: myapp newTag: v1.0.0
undefinedapiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- service.yaml
commonLabels:
app: myapp
namePrefix: myapp-
images:
- name: myapp newTag: v1.0.0
undefinedOverlay Kustomization
覆盖层Kustomization配置
yaml
undefinedyaml
undefinedoverlays/production/kustomization.yaml
overlays/production/kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
bases:
- ../../base
replicas:
- name: myapp-deployment count: 5
images:
- name: myapp newTag: v2.0.0
patches:
- patch: |- apiVersion: apps/v1 kind: Deployment metadata: name: myapp-deployment spec: template: spec: containers: - name: myapp resources: limits: memory: "1Gi" cpu: "1000m"
undefinedapiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
bases:
- ../../base
replicas:
- name: myapp-deployment count: 5
images:
- name: myapp newTag: v2.0.0
patches:
- patch: |- apiVersion: apps/v1 kind: Deployment metadata: name: myapp-deployment spec: template: spec: containers: - name: myapp resources: limits: memory: "1Gi" cpu: "1000m"
undefinedCommon Commands
常用命令
bash
undefinedbash
undefinedBuild kustomization
Build kustomization
kustomize build base/
kustomize build base/
Build overlay
Build overlay
kustomize build overlays/production/
kustomize build overlays/production/
Apply with kubectl
Apply with kubectl
kubectl apply -k overlays/production/
kubectl apply -k overlays/production/
Diff before apply
Diff before apply
kubectl diff -k overlays/production/
undefinedkubectl diff -k overlays/production/
undefinedTransformers
转换器
Common Labels
通用标签
yaml
commonLabels:
app: myapp
environment: productionyaml
commonLabels:
app: myapp
environment: productionName Prefix/Suffix
名称前缀/后缀
yaml
namePrefix: prod-
nameSuffix: -v2yaml
namePrefix: prod-
nameSuffix: -v2Namespace
命名空间
yaml
namespace: productionyaml
namespace: productionConfig Map Generator
ConfigMap生成器
yaml
configMapGenerator:
- name: app-config
files:
- config.properties
literals:
- LOG_LEVEL=infoyaml
configMapGenerator:
- name: app-config
files:
- config.properties
literals:
- LOG_LEVEL=infoSecret Generator
Secret生成器
yaml
secretGenerator:
- name: app-secrets
literals:
- password=secret123yaml
secretGenerator:
- name: app-secrets
literals:
- password=secret123Best Practices
最佳实践
Use Bases for Common Configuration
通用配置使用基础层
Keep common configuration in base and environment-specific in overlays.
将通用配置放在base层,环境特定配置放在overlays层。
Strategic Merge Patches
策略合并补丁
yaml
patches:
- path: patch-deployment.yamlyaml
patches:
- path: patch-deployment.yamlJSON Patches
JSON补丁
yaml
patchesJson6902:
- target:
group: apps
version: v1
kind: Deployment
name: myapp
patch: |-
- op: replace
path: /spec/replicas
value: 3yaml
patchesJson6902:
- target:
group: apps
version: v1
kind: Deployment
name: myapp
patch: |-
- op: replace
path: /spec/replicas
value: 3