Upgrade to Pro — share decks privately, control downloads, hide ads and more …

kustomizeのあまり知られていないが 便利な機能 (kustomize edit,create) の紹介

yugo kobayashi
February 22, 2022

kustomizeのあまり知られていないが 便利な機能 (kustomize edit,create) の紹介

yugo kobayashi

February 22, 2022
Tweet

More Decks by yugo kobayashi

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  5. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  9. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  17. 参考
    - 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

    View Slide