ISBN 9784297123192
目で見て体験! Kubernetesのしくみ -- Lチカでわかるクラスタオーケストレーション
概要
Raspberry Pi上のLED可視化でKubernetesのクラスタ挙動を体感しながら習得する
想定読者
Dockerコンテナの基本操作は理解しているが、Kubernetesの宣言的管理や自己修復の仕組みが直感的に把握できていないエンジニア。コマンドや設定ファイルの意味より先に『何が起きているか』を目で確認したい学習者
こんな人には向いていない
- Kubernetes本番クラスタをすでに運用しており、HelmチャートやOperatorの設計など応用的なトピックを求めている人には内容の難易度が初中級止まり
- GKEやAKS等のマネージドKubernetesをAWS/GCPコンソールから操作するだけの利用者には、Raspberry Pi構築の工程が学習目的に対して冗長になる可能性がある
- Raspberry Piの物理ハードウェアセットアップを含む実験よりも、コードや設定ファイルの精読で理解を深めたい読者には動画代替があるとはいえ本書の核が活かしにくい
読了後にできるようになること
- Pod・Node・Deployment・Service・ReplicaSetといったKubernetesの主要リソースの役割と関係を図解と実機動作で説明できる
- ノード障害・バックエンド障害・アプリケーション異常という3種類の障害シナリオでKubernetesがPod数を自律的に回復するしくみを理解する
- ローリングアップデートとバージョン切り戻しの手順を実機で確認し、無停止デプロイの設定判断軸を身につける
- ConfigMapとSecretを使って設定値と機密情報をコンテナから分離して管理する方法を実装できる
- HPA(水平Pod自動スケーラー)とCluster Autoscalerによるメトリクスドリブンなスケール戦略の違いを説明できる
- kubectl execやephemeral containerを使ったKubernetesクラスタのトラブルシューティング手順を実践できる
本書のキー概念(章解説)
- 第 1 章 Kubernetesの基礎 — Kubernetesで実現できること・構成要素の全体像・kubectl基本操作を整理する導入章。後続の実験章に入る前に概念地図を作る目的で読む
- 第 2 章 クラスタの準備とコンテナどうしの連携 — Kubernetes導入・コンテナレジストリ設定・LEDサーバWebサーバの起動まで。物理ハードを持たない読者は動画代替で本章の成果物を把握してから次章へ進む
- 第 3 章 さまざまな障害への対応 — ノード故障・バックエンド障害・アプリ異常という3パターンの障害シナリオを順番に試す。LEDが消えて再び点灯するまでの時間を目視確認できる本書最大のハイライト章
- 第 4 章 アプリケーションのスムーズな更新 — バージョン管理・無停止更新・バージョン混在防止・切り戻しを実装。本番で最も問われるデプロイ戦略の基礎を一通り体感できる
- 第 5 章 システム構成の集中管理 — 環境変数・ConfigMap・Secretの3段階で設定と機密情報をコンテナから分離する方法を学ぶ。12-factor appの原則との接続を意識すると理解が深まる
- 第 6 章 負荷に応じたオートスケール — HPAによるPod数自動調整とCluster Autoscalerによるノード数自動調整を対比して学ぶ。メトリクス取得の仕組みも合わせて把握できる
- 第 7 章 Kubernetesのその他の機能 — CronJobによる定期実行とStatefulSetによる状態を持つアプリの管理を扱う。ステートレス設計の前提が崩れるユースケースへの対処として位置付けると整理しやすい
- 第 8 章 Kubernetes環境の調査とデバッグ — kubectl exec・ephemeral container・ノード調査ツール不要のデバッグ手順を実践的に解説。障害対応時の手順書として単独参照する使い方が実務で有効
ハイライト
- Raspberry Pi上の『状況に応じてLEDが光る』Webサーバクラスタを構築し、障害を起こしたPodの再起動の様子などを実際に目で見ながらKubernetesのしくみを学んでいきます。(本書の独自性が最も端的に表れた一文。宣言的管理の『見えにくさ』という本質的な学習障壁をLED物理可視化で解消するというアプローチが他書との最大の差別化点)
- 手元でのクラスタ構築の難しさ、宣言的な管理の裏側の見えづらさなどから、多少触ってみるだけではその効果を実感したりしくみを理解したりすることが困難なのが実情です。(Kubernetesを学ぼうとして挫折しやすい理由を著者が正確に指摘しており、本書が解こうとしている課題の輪郭が購買判断の前提として明確になる)
編集メモ
ISBN直接言及のQiita記事0件・累計likes 0件。Rakutenランキングデータなし。外部シグナルが蓄積していないため書誌情報のみで判定しsupplementaryとする
読む前に押さえておきたいこと
- DockerfileでイメージをビルドしてコンテナをローカルでrunできるDockerの基本操作
- LinuxコマンドラインとSSHの基本的な操作(ls・cd・vim/nano・ssh等)
- Raspberry Piを自分でセットアップする場合はmicroSDカードへのOS書き込み程度のハードウェア作業経験(動画代替を利用する場合は不要)
学習のコツ
- Raspberry Piを用意できない場合でも公開動画を先に視聴して各章の最終状態を確認してから読み始めると、文章とコマンドの意味が入りやすい
- 第3章(障害対応)と第4章(ローリングアップデート)は本書の核心なので、前後の章を流し読みしてでも、この2章に手を動かす時間を集中させることを推奨
- 第8章(デバッグ)は通読ではなく、実際のトラブルが発生した際に辞書的に引く使い方が実務に合っている。最初は見出しだけ把握しておけば十分
- 第5章(ConfigMap/Secret)は12-factor appのconfig原則や環境変数管理の観点で読むと、Kubernetes固有の話ではなく汎用的な設計判断として吸収しやすい
出版社による内容紹介
近年普及が著しいKubernetesですが、手元でのクラスタ構築の難しさ、宣言的な管理の裏側の見えづらさなどから、多少触ってみるだけではその効果を実感したりしくみを理解したりすることが困難なのが実情です。そこで本書では、Raspberry Pi上の「状況に応じてLEDが光る」Webサーバクラスタを構築し、障害を起こしたPodの再起動の様子などを実際に目で見ながらKubernetesのしくみを学んでいきます。Raspberry Piの構築が面倒な方のために動画も公開中! ■第1章:Kubernetesの基礎 ■■Kubernetesで実現できること ■■Kubernetesの構成要素と全体像 ■■Kubernetesを制御するコマンド ■■まとめ ■第2章:クラスタの準備とコンテナどうしの連携 ■■Kubernetesの導入 ■■コンテナレジストリの設定 ■■「目に見えるWebサーバ」の実行 ■■まとめ ■第3章:さまざまな障害への対応 ■■インフラ障害(ノード故障)を検知しPod数を維持する ■■バックエンド障害を検知しリクエストを振り分ける ■■障害を起こしたアプリケーションを検知し自動で再起動する ■■まとめ ■第4章:アプリケーションのスムーズな更新 ■■アプリケーションをバージョン管理する ■■無停止でアプリケーションを更新する ■■バージョン違いのアプリケーションの混在を防ぐ ■■更新に問題があった際にすばやく切り戻す ■■まとめ ■第5章:システム構成の集中管理 ■■環境変数やファイルで設定を引き渡す ■■ConfigMapで設定を管理する ■■Secretで機密情報を管理する ■■まとめ ■第6章:負荷に応じたオートスケール ■■メトリクスに応じてPod数を自動調整する ■■ノードの数自体を自動調整する ■■まとめ ■第7章:Kubernetesのその他の機能 ■■定期的に処理を実行する ■■状態を持つアプリケーションを管理する ■■まとめ ■第8章:Kubernetes環境の調査とデバッグ ■■コンテナの中を調べたい ■■アプリケーションの稼動環境のパラメータをちょっと変更して試してみたい ■■ノードの調子が悪いので調査したいが、ツール類をインストールしたくない ■■デバッグに便利なそのほかの機能 ■■まとめ ■付録A:Raspberry Piのセットアップ ■■準備するハードウェア ■■OSのインストールと設定 ■付録B:「目に見えるWebサーバ」のためのLEDサーバの構築 ■■実装のための課題 ■■ハードウェア ■■ソフトウェア
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。