Ponz Dev Log

ソース派のシステムエンジニアの開発日記

Kubernetes完全ガイド 読了後感想

Kubernetes完全ガイド』を読んだので感想の投稿です。 先月の技術書典7でKubernetes関連の本を読んでKubernetes強者になりたい欲高まったので読んでみました。

book.impress.co.jp

ターゲット読者は誰か?

Kubernetesを利用する可能性のある方全てが対象となっています。 Kubernetesを何も知らない人は頭から中盤くらいまで読めば基本的なことは全部できそうです。(Dockerの説明は章が設けられているものの事前に押さえておいた方が良さそうですが...)

また、普段からKubernetesを使っている人でも復習と新しい発見ができる本です。リファレンス用途としても良さそうですね。

どんな本か?

この本の『はじめに』で記載されているように、 Kubernetes上のアプリケーション開発で利用する可能性のあることを網羅的に解説されています。

内容としては前半〜中盤過ぎまでは、Kubernetesそのものの解説と、アプリケーション開発者が押さえておくべきリソースの解説がメインです。 リソースも5つのグループに分けて体系的に説明されており、リファレンスとして後で読んでも分かりやすい構成になっています。

また、後半からはKubernetesのリソースの他にもアプリケーション開発で忘れてはならない セキュリティやモニタリング、ロギング、CICD、サービスメッシュといったトピックにも触れられています。

ピックアップ

個人的にこの本のすごいなと思った点を2つピックアップします。

体系的にリソースが解説されている

各リソースを関係性を理解した上で丁寧に解説されています。

もちろん1つ1つのリソースの説明はQiitaやブログ記事をググればなんとなく理解することは可能です。 ですが、例えば以下のようなリソース違いやkubectlコマンドの意味、リソースの必要性を説明せよと言われると途端に難しく感じられます。

  • DeploymentとReplicaset
  • PersistenceVolumeとPersistenceVolumeClaim
  • ConfigMapとSecret
  • Podのrequestとlimits
  • ClusterRoleとClusterRoleBinding

上記のリソースは触れる機会が多いのにも関わらず意味を理解し切れていない、いわゆる『雰囲気』で触りがちです。 2つずつリソースを並べましたが、これらの違いやkubectlのコマンドの意味を説明できなかったら断片的でも読む価値があります。

隠れた標準機能を発見できる

また私は初見でしたがKubernetesの標準機能でここまでできるのかと目に鱗な機能を知ることができます。 一例として以下のようなリソースの解説がされていました。

  • リソースに制約を設けるリソース (ResourceQuota, LimitRange, PodPreset)
  • セキュリティに関するリソース (PodSecurityPolicy)
  • ネットワークに関するリソース (NetworkPolicy)
  • 外部サービス(AWSGCP)を作成・管理するリソース (ClusterServiceBroker, ClusterServiceClass, ClusterServicePlan)

上記の機能は、アプリ開発者よりもKubernetesクラスタを運用を担当する方やシステム全体をマネージするSREの方々が意識することが多いかもしれません。 それでも自前で実装したり難しいツールを入れなくともKubernetesが標準的に提供している機能でリソース制約や外部サービスのプロビジョニングまでできるのは驚きです。

この本が執筆されたのはKubernetes v1.11なので、最新版(1.16)だともっと増えているかもしれません。。。

総評

読んでみて改めてKubernetesの奥深さを理解できました。まさに完全ガイドとの名前の通りの書籍です。

私は業務でもKubernetesを使っていますが、 今まで知らなかったことや雰囲気で分かったつもりになっていたことをキャッチアップすることができたので超絶推せる本です。 (弊社の同僚にもオススメしておきました。)

この書籍で扱われていないこともまだまだあるとの情報を得ましたので、深掘りしていくのが楽しみです。


せっかく本を一読したのでステップアップのために 2019年度内にCKAD取得を目指します。 さて、頑張るぞ。

www.cncf.io