Kustomize 是一个用于 Kubernetes 资源管理的工具,它提供了一种简洁且强大的方式来自定义 Kubernetes 配置。Kustomize 遵循声明式配置的原则,可以在不修改原始 YAML 文件的情况下,通过叠加修改来调整配置。它已经被集成到了 kubectl 中,成为 Kubernetes 生态系统中的一个重要组成部分。
patchesStrategicMerge
来应用对基础配置的更改。基础配置:创建一个包含 Deployment 和 Service 的基础配置。
# base/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 1
template:
spec:
containers:
- name: my-app
image: my-app:tag
环境特定的叠加:为开发环境创建一个叠加,更改镜像标签和副本数。
# overlays/dev/kustomization.yaml
bases:
- ../../base
patchesStrategicMerge:
- deployment_patch.yaml
# overlays/dev/deployment_patch.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 2
template:
spec:
containers:
- name: my-app
image: my-app:dev
应用配置:使用 kubectl apply -k
应用特定环境的配置。
kubectl apply -k overlays/dev/
这个案例展示了如何使用 Kustomize 管理不同环境的配置差异,实现了配置的可重用性和易维护性。通过这种方式,可以轻松地管理大型、复杂的 Kubernetes 应用部署。