Kustomize Overlays 用于管理环境专属的 Kubernetes 配置。它通过 overlay、strategic merge patch 和 JSON patch,为开发、预发布和生产等环境定制 Kubernetes 资源,而无需复制配置。每个 overlay 引用一个 base 配置,并应用环境专属的补丁、转换和资源调整。
用途
Overlays 的核心用途是让同一套 Kubernetes 基础资源适配不同环境。基础配置(base)定义 Deployment、Service、ConfigMap、Ingress 等通用资源;各环境 overlay 在此基础上覆盖命名空间、副本数、资源请求与限制、镜像标签、标签与注解、ConfigMap 值等,避免为每个环境维护重复的 YAML。
主要能力
- 基础配置:通过 base/kustomization.yaml 定义 resources、commonLabels、commonAnnotations、namePrefix、namespace、images 等。
- 环境 overlay:development、staging、production 等目录各自包含 kustomization.yaml,引用 ../../base,并设置 namespace、commonLabels、commonAnnotations、nameSuffix、images、configMapGenerator、replicas、patches、patchesStrategicMerge、patchesJson6902 等。
- 补丁类型:支持 strategic merge patches(按路径引用或内联)和 JSON patches(patchesJson6902),可执行 replace、add、remove 操作。
- 高级补丁:支持条件补丁(通过 labelSelector 或 target 匹配)、多资源补丁(kind 使用正则如 Deployment|StatefulSet)、带 options 的补丁(如 allowNameChange)。
- 生产增强资源:可在 production overlay 中引入 HPA、PDB、NetworkPolicy,并配置安全上下文、亲和性、Vault 注入注解、Prometheus 抓取注解等。
使用方式
- 创建 base 目录,编写 kustomization.yaml 及 Deployment、Service、ConfigMap、Ingress 等资源文件。
- 为每个环境创建 overlays/<env>/ 目录,编写 kustomization.yaml,通过 resources 引用 ../../base。
- 在 overlay 的 kustomization.yaml 中设置环境专属的 namespace、nameSuffix、commonLabels、commonAnnotations、images、configMapGenerator、replicas 等。
- 使用 patches 引用外部补丁文件(如 replica-patch.yaml、resource-patch.yaml、security-patch.yaml),或使用 patchesStrategicMerge 内联补丁,或使用 patchesJson6902 执行 JSON 补丁。
- 按需在 overlay 中增加 hpa.yaml、pdb.yaml、network-policy.yaml 等资源。
适用场景
- 多环境(开发、预发布、生产)Kubernetes 配置管理。
- 需要按环境调整副本数、资源配额、镜像标签、日志级别、缓存配置等。
- 需要为生产环境增加 HPA、PDB、NetworkPolicy、安全上下文、节点亲和性等。
- 需要以 JSON patch 精确修改 Ingress 主机、TLS、注解等字段。
- 需要按区域(如 us-east-1)进一步细分 overlay 的场景。
限制
资料未提供该技能的具体安装命令、运行环境要求、版本兼容性、收费方式或价格信息。资料未提供官方文档链接或仓库地址。资料未提供实际执行效果、性能数据或与其他工具的对比。资料未提供该技能在 skills.sh 平台上的具体使用步骤或调用方式。