Slide 1

Slide 1 text

kustomizeのあまり知られていないが 便利な機能 (kustomize edit,create) の紹介 koba1t Kubernetes Meetup Tokyo #48 LT 1

Slide 2

Slide 2 text

自己紹介 name: 小林優吾 github: koba1t twitter: 0x6b6f62 所属: ヤフー株式会社 2

Slide 3

Slide 3 text

Kustomize とは kubernetes のリソース設定をカスタマイズするためのcliツール 特定の値にpatchを当てることや、configMapなどのリソースのgenerateができる https://kubectl.docs.kubernetes.io/guides/introduction/kustomize/ https://github.com/kubernetes-sigs/kustomize 3

Slide 4

Slide 4 text

kustomize でできること - manifestにpatchを当てる - 複数クラスタ運用時に共通設定と個別に変える必要のある設定を分離できる https://github.com/kubernetes-sigs/kustomize 4

Slide 5

Slide 5 text

kustomize でできること - manifestにpatchを当てる - 複数クラスタ運用時に共通設定と個別に変える必要のある設定を分離できる https://github.com/kubernetes-sigs/kustomize kustomization.yaml から参照されるyaml 基本はk8sのyamlと同じ形式 kustomization.yaml kustomize が一番先に参照する file 参照するk8sのyamlや、加える変更を書く https://kubectl.docs.kubernetes.io/references/kustomize/glossary/#kustomization 5

Slide 6

Slide 6 text

詳しい話は CNDT2021 の hhiroshell さんの登壇を https://speakerdeck.com/hhiroshell/kustomize-deep-dive 6

Slide 7

Slide 7 text

kustomize の使い道 - manifestにpatchを当てるため - manifestのわかりやすさのため > 変更されそうなconfigやimage tagをk8sのyamlから分離することで、見やすくなる - manifestを1コマンドでクラスタにデプロイする > 各種コンポーネントを 1つの kustomization.yaml から全て参照することで > `kustomize build . | kubectl apply -f -` で一括デプロイが可能になる 7

Slide 8

Slide 8 text

kustomize の使い道 - manifestにpatchを当てるため - manifestのわかりやすさのため > 変更されそうなconfigやimage tagをk8sのyamlから分離することで、見やすくなる - manifestを1コマンドでクラスタにデプロイする > 各種コンポーネントを 1つの kustomization.yaml から全て参照することで > `kustomize build . | kubectl apply -f -` で一括デプロイが可能になる 1つのリポジトリで 数百クラスタ のkustomization.yamlを管理している 8

Slide 9

Slide 9 text

kustomize の使い道 - manifestにpatchを当てるため - manifestのわかりやすさのため > 変更されそうなconfigやimage tagをk8sのyamlから分離することで、見やすくなる - manifestを1コマンドでクラスタにデプロイする > 各種コンポーネントを 1つの kustomization.yaml から全て参照することで > `kustomize build . | kubectl apply -f -` で一括デプロイが可能になる 1つのリポジトリで 数百クラスタ のkustomization.yamlを管理している 大量のk8s clusterを管理しているとkustomization.yamlをscriptで操作したくなる 9

Slide 10

Slide 10 text

1. kustomizeのyamlを cli から操作する kustomize の サブコマンドを使う (edit,create) - kustomize create > kustomization.yaml を生成できる - kustomize edit > kustomization.yaml を操作できる 10

Slide 11

Slide 11 text

kustomize create - kustomization.yaml の雛形を生成することができる 11

Slide 12

Slide 12 text

kustomize edit - label (kustomize buildする全リソースに共通のlabelをつける) を追加 12

Slide 13

Slide 13 text

kustomize edit - label (kustomize buildする全リソースに共通のlabelをつける) を追加 - resources (kustomizeがbuild時に読むファイル) を追加 13

Slide 14

Slide 14 text

他にも一通りのことができそうなので、興味があれば確認してみて下さい 14

Slide 15

Slide 15 text

まとめ kustomize のサブコマンドでリソースの操作ができるので、 これを使ってshellscriptでfor分を回せば良い感じにできそう 普通の用途でもkustomization.yaml の書き方を毎回検索するよりは、subcommand を 使って生成した方が便利 15

Slide 16

Slide 16 text

kustomize を使いこなして senior yaml engineer になろう!!! 16

Slide 17

Slide 17 text

参考 - https://github.com/kubernetes-sigs/kustomize - https://speakerdeck.com/hhiroshell/kustomize-deep-dive - CNDT2021 の hhiroshell さんの登壇 - https://kubectl.docs.kubernetes.io/references/kustomize/glossary/#kustomization - kustomization.yaml の説明 17