Kustomizeマジ神!Kubernetes設定の闇を晴らすぜ!
概要:なにこれ凄い?
うおおお!皆さん、聞いてください!GitHubトレンドを追いかけてたら、とんでもないツールを見つけちゃったんですよ、Kustomize!こいつの何がヤバいって、KubernetesのYAMLファイルをテンプレートエンジンなしで、しかも宣言的にカスタマイズできちゃうってところ!今までHelmとかでテンプレート地獄に陥ってた僕らを救ってくれるヒーロー爆誕って感じだよね!kubectlにも標準で組み込まれてるから、導入も超スムーズで、もう僕、感動で震えが止まりません…!まさにGitOps時代の救世主!
ここが推し!
- テンプレート不要の宣言的カスタマイズ: Goテンプレートとかもう複雑すぎてヤバかったじゃないですか? Kustomizeはパッチやオーバーレイを使って、既存のYAMLを必要な部分だけ変更できるんですよ!これ、本当にスマートすぎる!
- GitOpsとの相性抜群: ただのYAMLファイルなので、バージョン管理システムとの相性も最高!変更履歴も追跡しやすいし、レビュアーもニコニコだよね。まさにGitOpsのために生まれてきたようなツール!
kubectl標準サポート: これが地味に一番デカいかも!kubectl apply -k ./path/to/kustomizationってコマンド一発でデプロイできちゃうんだから、もう最高of最高!別にツールをインストールする必要がないってのは、とてつもないアドバンテージだよね!- 環境ごとの設定が超楽:
baseとoverlaysディレクトリを分けるだけで、開発環境、ステージング、本番といった環境ごとの設定差異を綺麗に管理できるんですよ。重複コードが減って、メンテも捗るってもんです!
サクッと試そう(使用例)
base/kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources:
- deployment.yaml
- service.yaml
base/deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: my-app spec: replicas: 1 template: spec: containers: - name: my-app image: nginx:1.21
overlays/production/kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization bases:
- ../../base patchesStrategicMerge:
- deployment-patch.yaml commonLabels: env: production
overlays/production/deployment-patch.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: my-app spec: replicas: 3 template: spec: containers: - name: my-app image: nginx:1.22 # Production uses a slightly newer image
実行してみて!
kustomize build overlays/production
または
kubectl apply -k overlays/production
ぶっちゃけ誰向け?
- Kubernetes YAML管理に疲弊しているそこの君!: 「もう手書きYAMLは嫌だ!」って叫んでる人は絶対使うべき!あなたの人生がもっと豊かになるよ!
- GitOpsを本気で推進したいチーム: バージョン管理しやすいピュアなYAMLで、デプロイメントを自動化したいなら、Kustomizeは最高の相棒になるはず!
- 複数環境のKubernetes設定をスマートにしたい人: 開発、ステージング、本番…環境ごとに微調整が必要なYAMLを、最小限の差分で管理できるようになるぞ!これマジで気持ちいい!
まとめ
Kustomize、本当にすごい技術だと思いませんか?僕も最初、こんなシンプルなアプローチでここまでできるなんて信じられなかったんですよ!これからのKubernetes運用は、Kustomizeを使いこなすことが必須になる、って断言しちゃいます!さあ、みんなも一緒にKustomizeで、よりスマートなKubernetesライフを送ろうぜ!僕も引き続き、Kustomizeの深掘り記事とか書いていっちゃうぞー!