この記事は【推し祭り】技術書典で出会った良書 Advent Calendar 2019 7日目の記事です。
今回はバルゴさん執筆の『実践入門Kubernetes カスタムコントローラへの道』を推します!
本の内容
タイトル通り、Kubernetesのカスタムコントローラの解説本です。 自分は業務でKubernetesを使っていますが、 今年になって Kubernetes Custom ControllerやKubernetes Operator の話題を良く聞くようになったので正体を知るべくこの本を手に取りました。
以下目次から抜粋です。
- CRDとController
- client-goと知っておくべき周辺知識
- Sample Contorller解説
- controller-runtimeとcontroller-tools
- KubebuilderでSample Controllerを実装しよう
- OperatorSDKでSample Controllerを実装しよう
カスタムコントローラの説明だけでなく、 関連するKubernetesのController Loopの考え方、client-go / controller-runtime / controller-toolsといった関連する周辺知識、サンプルの実装まで非常に丁寧に書かれています。 カスタムコントローラについて日本語でここまで分かりやすくてステップ・バイ・ステップで学べる本は他にはないでしょう。 読了後はカスタムコントローラと向き合う自信がつきました :)
推しポイント
ここを推したいというポイントとして2つ挙げます。
カスタムコントローラ、CRD、CR、Operatorの違いを理解できる!
カスタムコントローラ周りの話題を追っていると、たびたび "CRD" や "Operator" といった単語が出てきます。 カスタムコントローラ関連の記事によってはこれらの単語をカスタムコントローラの同義語として書かれていますが、 それぞれの単語の意味するところと関係性が分かります。
一番最初の章に記載されていることなので、まずこの章を読むだけでも価値があります。
また、実装時にどのツールセットで上記のうちどれを操作するのかについても簡潔に書かれているのも推しポイントでしょう。
学べるカスタムコントローラの実装方法が1つだけじゃない! 比較しながら学べる!!
この本ではカスタムコントローラの実装方法として何と3つも学ぶことができます。1冊で3度美味しい!! 具体的には以下の実装方法を解説しています。
- 具体的には伝統的な実装方法 = The Kubernetes Way (既存のServiceやDeploymentといったリソースのコントローラと同じ実装方法)
- Kubernetes SIGs主導で開発されたフレームワーク Kubebuilder を使った実装方法
- CoreOS社発のOperator開発用のフレームワーク Operator SDK を使った実装方法
これが一番いい方法と決めつけずに実装方法を複数提示されているので、比較しながら自分に合ったカスタムコントローラの実装方法を見つけられるでしょう。 私はKuberbuilderによる実装方法が一番しっくりきました。
3つも解説されているのにも関わらず丁寧な解説のおかげで、手を動かしながら比較して使いやすいやり方を探せます。 題材は3手法とも同じカスタムコントローラ (Sample Controller)です。
書き手として1トピック解説する立場になって考えると、1つ実装方法を解説するだけでも大変なのに3つもとなるとめちゃくちゃハードルが高いです。 著者のKubernetes カスタムコントローラへの深い理解あってこそ書ける内容です。
どんな人に推せるか?
カスタムコントローラとはなんぞやを知りたい全ての人に推せます。 カスタムコントローラ / Operatorが流行りらしい or 凄いらしいで止まっていて手を動かしたことがない方は必見です。
以上、推し本記事でした。