kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Kubernetes を網羅的に学ぶなら「Kubernetes 完全ガイド 第2版」を読むべし

「Kubernetes 完全ガイド 第2版」を読んだ.今年6月に「第1版」を読み終わって,書評記事を書こうと思っていたら,タイミング良く今年8月に「第2版」が出版された.出版おめでとうございます!最初は目次を見ながら差分を中心に読んでいたけど,大幅にアップデートされていたため,結果的に最初からもう1度読んだ.Kubernetes そして Kubernetes 関連技術を学ぶのに最適な1冊だと思う.

Kubernetes完全ガイド 第2版 (Top Gear)

Kubernetes完全ガイド 第2版 (Top Gear)

  • 作者:青山 真也
  • 発売日: 2020/08/07
  • メディア: 単行本(ソフトカバー)

目次 🐋

  • 第1章 : Docker の復習と「Hello, Kubernetes」
  • 第2章 : なぜ Kubernetes が必要なのか?
  • 第3章 : Kubernetes 環境の選択肢
  • 第4章 : API リソースと kubectl
  • 第5章 : Workloads APIs カテゴリ
  • 第6章 : Service APIs カテゴリ
  • 第7章 : Config & Storage APIs カテゴリ
  • 第8章 : Cluster APIs カテゴリと Metadata APIs カテゴリ
  • 第9章 : リソース管理とオートスケーリング
  • 第10章 : ヘルスチェックとコンテナのライフサイクル
  • 第11章 : メンテナンスとノードの停止
  • 第12章 : 高度で柔軟なスケジューリング
  • 第13章 : セキュリティ
  • 第14章 : マニフェストの汎用化を行うオープンソースソフトウェア
  • 第15章 : モニタリング
  • 第16章 : コンテナログの集約
  • 第17章 : Kubernetes 環境での CI/CD
  • 第18章 : マイクロサービスアーキテクチャとサービスメッシュ
  • 第19章 : Kubernetes のアーキテクチャを知る
  • 第20章 : Kubernetes とこれから

全体的に 🐋

まず「第2版」で全体的に良かった点を紹介する.機能面では Kubernetes v1.18 までサポートされている.Kubernetes のライフサイクルを考えると,本書は今後も定期的にアップデートされるのだろうか?次にセクションごとに 1.18 Alpha1.18 Beta など,使えるようになったバージョンが明記されるようになった.Feature Gates を確認することはできるけど,本書を読みながらバージョンも合わせて確認できるのは便利だった.残りは非常に細かいけど,コマンド実行結果のブロック背景色が黒くなって視認しやすくなったり,章ごとの区切りページに「強そうなクジラ🐋」の絵が載るようになってカッコイイ!

kubernetes.io

そして!何と言っても「第1版」に引き続き「網羅性」「図表を含めた解説の充実さ」は素晴らしすぎる!また GitHub に本書で紹介されているマニフェストも公開されているため,試したり,写経したり,無限に学べる.こんな素晴らしい本を日本語で読めることに感謝しかない!

github.com

dive / Trivy / Clair 🐋

第1章「Docker の復習」は,流石にアップデートされていないだろうと思いながら読んでいたら,Docker イメージの種類に DistrolessUniversal Base Image が追加されていて,細かくアップデートされていた.また Docker イメージの最適化(軽量化)ツールとして dive の紹介が追加されていたり,Docker イメージのセキュリティツールとして TrivyClair の紹介も追加されていた.

kind 🐋

第3章「Kubernetes 環境の選択肢」では,ローカル環境に Kubernetes クラスターを構築するツールとして,minikubeDocker Desktop に加えて kind も追加されていた.今まではお手軽な Docker Desktop for Mac "Edge" を使うことが多かったけど,kind を使えば簡単に「マルチノード構成」を構築することもできるため,今後は kind を積極的に使っていきたいと思う.本書を読みながら kind に入門した記事は既に公開してある.他にも MicroK8sK3s の紹介も追加されていた.

kakakakakku.hatenablog.com

Kubernetes リソース 🐋

第5章「Workloads APIs カテゴリ」から続く Kubernetes リソースの解説は「第1版」に引き続き網羅的で,さらにボリュームが増えていた.新機能 (Feature Gates) で言えば,Job の終了後に自動的に履歴を削除する TTLAfterFinished 機能や ConfigMap の更新を防ぐ ImmutableEphemeralVolumes 機能も追加されていた.本書を読みながら CronJobConfigMap を試した記事は既に公開してある.

kakakakakku.hatenablog.com

kakakakakku.hatenablog.com

Startup Probes 🐋

第10章「ヘルスチェックとコンテナのライフサイクル」では,「第1版」でも紹介されていた Liveness ProbesReadiness Probes に加えて Startup Probes の解説が追加されていた.本書を読むまで Startup Probes は知らなかった.簡単に言えば,起動するまでに時間がかかるコンテナで最初の Probes が実行されるまでの initialDelaySeconds とは別に,起動のみにフォーカスした Probes を設計できるようになる.うまく設計しないと使えなさそうだけど,機能としては覚えておきたいところ.

kubernetes.io

Helm / kustomize 🐋

第14章「マニフェストの汎用化を行うオープンソースソフトウェア」は個人的に嬉しいアップデートだった.なぜなら「第1版」では名前が載っているだけだった kustomize の解説が追加されていたからで,本書を読みながら kustomize を試した記事は既に公開してある.また HelmHelm v3 前提で解説がアップデートされていて良かった.

kakakakakku.hatenablog.com

kakakakakku.hatenablog.com

GitOps 🐋

第17章「Kubernetes 環境での CI/CD」「第1版」と大きく内容が変わっている.特に GitOps の解説が充実していて「GitOps 基礎」「CIOps との比較」も学べるし,GitOps ツールである Argo CD の解説も追加されている.また CI/CD に関連するツールとして,TelepresenceSkaffoldConftest なども追加されている.

GitOps ツールとして Argo CD と並んで有名な Flux を試した記事は既に公開してある.本書には「Argo CD + Flux = GitOps Engine」というコラムも追加されていた.次は Argo CD を試すぞー!

kakakakakku.hatenablog.com

kakakakakku.hatenablog.com

誤植 🐋

今のところは「正誤情報はありません」となっていたけど,気付いた点を残しておく.

  • 第4章 : P.58 vv1.16.6vv1.16.6
  • 第7章 : P.309 AWS Elastic Block StoreAmazon Elastic Block Store (EBS)

book.impress.co.jp

まとめ 🐋

「Kubernetes 完全ガイド 第2版」を読んだ.書評記事では全てを伝えられないほどに素晴らしく,何度も何度も読み直すバイブルにする!Kubernetes では理解すべき知識の幅が広く「読んだ」「使える」の間には大きなギャップがあると思う.本書を読みながら試した記事も多く公開しているけど,まだ試せていない機能もあるため,今後も Kubernetes を楽しく学んでいきたいと思う.

Kubernetes を網羅的に学ぶなら「Kubernetes 完全ガイド 第2版」を読むべし💡

Kubernetes完全ガイド 第2版 (Top Gear)

Kubernetes完全ガイド 第2版 (Top Gear)

  • 作者:青山 真也
  • 発売日: 2020/08/07
  • メディア: 単行本(ソフトカバー)