Advanced - Kustomize
什麼是 Kustomize
Kustomize 是 Kubernetes 原生的資源配置管理工具,從 Kubernetes 1.14 開始,已內建於 kubectl
命令行工具中。
它允許使用者透過非侵入式的方式對 YAML 配置進行覆寫和自訂,特別適合管理不同環境(如開發、測試、正式環境)的資源配置。
主要特點
- 基於 YAML 文件的無侵入性覆寫
- 不需要直接修改原始的 YAML 文件,可以在外層疊加配置來進行自訂。
- 支持多層次的資源定義
- 透過基礎資源(Base)和覆寫層(Overlay)的方式,方便管理不同環境的配置。
- 資源去重與整合
- 自動處理多個配置文件中的資源合併,避免重複定義。
- 靈活的變數注入與命名空間管理
- 支持透過變數(Variables)與 ConfigMap/Secret 自動注入配置,並簡化命名空間的管理。
實戰 Kustomize
基本指令
- 輸出 kustomize 結果:
kubectl.exe kustomize <kustomization_dir>
- 查看 kustomize 結果與線上差異:
kubectl.exe diff -k <kustomization_dir>
- 執行 kustomize 產生的結果:
kubectl.exe apply -k <kustomization_dir>
- 刪除 kustomize 產生的資源:
kubectl.exe delete -k <kustomization_dir>
建立 base 的 kustomization 模板
- 首先我們看資料夾的結構,會有一個 base 儲存基本的設定檔,這些設定檔基本上儲存不變的地方,以及確定要改的地方
tree /f
---
├─base
│ deployment.yaml
│ kustomization.yaml
│ service.yaml