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

脱・コピペ!自分で調べて書くK8sマニフェスト

 脱・コピペ!自分で調べて書くK8sマニフェスト

「動いてるマニフェストをコピペして使いまわす」
そんな日々から卒業しませんか?

実は、kubectl にはマニフェストを「調べて」「書く」ための強力なツールが標準で備わっています。

この勉強会では、kubectl explain、kubectl create、CRDの調査方法など、実務で使える「調べ方」を学びます。

Avatar for とことんDevOps

とことんDevOps

February 25, 2026
Tweet

More Decks by とことんDevOps

Other Decks in Technology

Transcript

  1. 日本仮想化技術株式会社 概要 • 社名:日本仮想化技術株式会社 • 英語名:VirtualTech Japan Inc. • 設立:2006年12月

    • 資本金:3,000万円 • 本社:東京都渋谷区渋谷1-8-1 • 取締役:宮原 徹(代表取締役社長兼CEO)、伊藤 宏通(取締役CTO) • スタッフ:11名(うち、8名が仮想化技術専門エンジニアです) • URL:http://VirtualTech.jp/ • 仮想化技術に関する研究および開発 • 仮想化技術に関する各種調査 • 仮想化技術に関連したソフトウェアの開発 • 仮想化技術を導入したシステムの構築 • OpenStackの導入支援・新規機能開発 2 ベンダーニュートラルな 独立系仮想化技術の エキスパート集団 会社概要
  2. わたくしについて • 北海道在住 • かんたんDevOps • DevOpsのOps側 • 書籍執筆 •

    Webメディア連載 • DevOpsを実現するために行うこと・考えること https://thinkit.co.jp/corner/10843 • WSL2で始めるLinux環境構築術 https://thinkit.co.jp/corner/11545 • 実践で学ぶDevOpsツールの使いこなし術 https://thinkit.co.jp/corner/11642 3
  3. 今回しない話 • 各リソースの動作の詳細説明 • Deploymentがどう動くか、Serviceの仕組みなど • 全リソースの網羅的な解説 • Pod /

    Service / Ingress / PVC / … を一通り説明はしない → 調べ方さえわかれば、あとは自分で書ける 5
  4. 難しい理由 (1/3) • APIのバージョンによって書き方が違う • 同じDeploymentでも apps/v1 と extensions/v1beta1 で構造が

    違う • フィールドが必須なのかパッと見でわからない • selector は必須、resources は省略可 → どうやって判断する? • フィールドが多すぎる • Deployment だけで数十のフィールドが存在する 8
  5. 難しい理由 (2/3) ドキュメントが役に立たないことがある • 一部の設定値しか解説されていない • フィールドの存在は書いてあるが、何を設定すればどう動くかは書いていない • 古いバージョンのドキュメントが見つからない •

    公式は最新版のみ更新される。過去バージョンはGitHubを掘るしかない • そもそもドキュメントが存在しない • サードパーティ製のCRDはドキュメントが皆無なことも珍しくない • 場所がわかりづらい • ドキュメントはあるものの階層が深すぎて目的のドキュメントに辿り着けない • 全部英語 • そもそも読む気が失せる → 翻訳アプリ・生成AIで要約してもらうと一気にハードル が下がる • これから出てくる調べ方も説明は全部英語なので慣れるしかない 9
  6. 2. 公式ドキュメントをみる https://kubernetes.io/docs/reference/kubernetes-api/ • リソースの概要・用途が分かる • フィールドの一覧が載っている • 標準リソース(Deployment, Service

    など)は充実している 限界を知った上で使う • 自分のクラスターとバージョンが違う可能性がある • 説明が薄いフィールドもある → 詳細は kubectl explain で補う 17
  7. 3. kubectl create で叩き台を作る --dry-run=client と --dry-run=server の違い --dry-run=client --dry-run=server

    サーバー接続 不要 必要 API の情報源 kubectl バイナリ自身 クラスター 出力 最小限のフィールドのみ デフォルト値・自動付与フィー ルドも含む 用途 叩き台の生成 マニフェストの検証 24
  8. --dry-run=client の注意点 • --dry-run=client は kubectl が知っている API 定義でマニ フェストを生成する

    • クラスターにデプロイされているリソースのバージョンではない • kubectl とクラスターのバージョンが離れていると、生成され るマニフェストがクラスターと合わない可能性がある 25
  9. 3. kubectl create で叩き台を作る • コマンドラインで指定 → YAML の構造を覚えなくていい •

    どの階層に書くかは kubectl create が調整してくれる • あとはファイルに保存して、足りない設定を追記するだけ 26
  10. マニフェストの調べ方:まとめ 1. クラスターにデプロイされているAPIバージョンを把握 ↓ 2. 公式ドキュメントで概要・全体像を把握 ↓ 3. kubectl create

    で叩き台を生成 ↓ 4. kubectl explain で足りないフィールドを調べながら追記 分からないフィールドに出会ったら kubectl explain <リソース>.<フィールドのパス> 33
  11. 36