kuwana-kbの開発/学習ブログ

プログラミング、クラウドインフラのWeb開発/学習ブログ

「Kubernetes完全ガイド」 書評

こんばんは、 kuwana-kb です。

新しい職場で働き始めてはや2ヶ月が経過しました。 最近はAPIの実装に加えて、インフラまわりのタスクもしています。 インフラでは、Kubernetesを利用しているのですが、私は今までKubetnetesをあまり触ったことがありませんでした。 そこでKubernetesを仕事で使うためのキャッチアップとして、「Kubernetes完全ガイド」を読んだので書評したいと思います。

Kubernetes完全ガイド impress top gearシリーズ

Kubernetes完全ガイド impress top gearシリーズ

この本の紹介

本書は、Kubernetesの入門書です。これからKubernetesを使っていきたいという方に最適な書籍だと思います。

ネット上には、PodやDeploymentなどのKubernetesリソースを動かすための入門記事もありますが、 私がそれらをやってみて思ったのは「なんだかよくわからないけどとりあえず動かせた…」ということです。 それだけKubernetesは複雑であり、学習コストが相応にかかるものだと思います。 実際、Kubernetesには複数のコンポーネントとリソースがあり、それら1つ1つの概念とその関係性を理解するのは容易ではありません。

本書では、Kubernetesを扱う上で必要となる知識を1つ1つ丁寧に解説しています。

ざっくり2行でいうと

  • Kubernetes入門者に最適
  • 外部ツールの解説も充実している

この本の2つのポイント

1. Kubernetes入門者に最適

本書を一通り読み終えて思ったのは、「Kubernetes入門者に最適な1冊である」ということです。

冒頭でも説明したとおり、Kubernetesには多様なリソースの概念があります。 一例ををあげるとPod, ReplicaSet, Deployment, Serviceなどです。これ以外にもたくさんあります。 それら1つ1つの特徴と関係性を理解するのは容易ではありません。 本書では、これらのリソースについて1つ1つ丁寧に解説しています。

また、本書はハンズオン形式で解説が進みます。 具体的には、GCPGoogle Kubernetes Engine(GKE)でリソースを作っていきます。 gcpkubernetesの操作で必要となるコマンドは、書籍上にすべて書いてあるので詰まることなく構築を進められます。 また、kubernetesのリソース作成に必要なソースコード(manifest)も筆者のリポジトリに上がっているため、詰まったらそちらを見れば解決できるでしょう。

ちなみに、GCPを利用すると聞いて課金が不安になった方もいるかもしれませんがその心配はいりません。 GCPでは、300ドル分の無料利用枠があるのですが、その枠内で書籍の内容をすべて実践できました。 私の場合、3週間ほどデフォルト性能のGKEクラスタをつけっぱなしにしていましたが、22,054.48 円余りました。 ただ、使い終わったあとにリソースの削除を忘れると請求がきてしまうのでお掃除は忘れないようにしましょう。

外部ツールの解説も充実している

本書はKubernetesだけでなく、Kubernetesと関わりの深いOSS, ツールの解説も充実しています。 以下に具体例を列挙します。

  • セキュリティ(kubesec)
  • マニフェスト汎用化(Helm, Ksonnet, Kustomize)
  • モニタリング(Datadog, Prometheus)
  • ロギング(fluentd, Datadog Logs)
  • CI/CD(Spinnaker, Skaffold, Jenkins X)
  • サービスメッシュ(Linkerd, Conduit, Istio)

私の場合、kubesec, Kustomize, Skaffold あたりは直近で使う必要があったため、とても役立ちました。

また、サービスメッシュは名前をよく聞くもののあまり理解していなかったため、キャッチアップに最適でした。 特に良かったのは、各OSSの特徴がわかりやすくまとめられていることです。 「Aというリソースは今一番勢いがある。Bは〇〇という環境を想定して作られている」といった形で簡潔に違いがまとめられています。 知識が浅くKubernetesの開発情勢に疎い初学者にとって、こうした全体像の解説はありがたいです。

まとめ

正直、Kubernetesをあまり知らなかった私は、Kubernetes複雑すぎない…?AWSのECSで十分じゃない…?という感想を持っていました。 しかし、本書を読み終えてKubernetesに幅広い可能性を感じました。 特に、Kubernetesにはマネージド・サービスの代替となる可能性があることや仮にKubernetesが他のOSSにシェアを取られたとしても、 Kubernetesで学ぶことのできるコンセプトは他でも活きるといった著者の考え方は、私にとって新たな知見でした。

Kubernetes完全ガイド」は、Kubernetesに入門するすべての方に対しておすすめできる良書です。