去年からちょっとずつ読んでた「Kubernetes完全ガイド 第2版」を読み終わりました。 なかなかボリュームのある本で668ページもあって読むのが大変でした。k8sを雰囲気しかしらない僕にとってはかなり勉強になる本で、体系的に学ぶことができk8sの全体像が頭に入ってきて解像度がかなり上がりました。
本のアウトプットも兼ねて感想とか気になったこととか書きます。

環境構築

この本はハンズオン形式なので、k8sの環境を作る必要があります。 僕は最初GKEを作成したのですが、費用がすぐに発生していやだったのでローカルで構築できるkindを利用しました。kindはDocker上でk8sを構築することができとても楽でした。ただ、他のブログなどをみてるとMinikubeがおすすめみたいです。kindはちょっとクセが強く一部の機能を動かすために設定が必要だったりしてたしかに初心者向けではないなと思いました。

図が多くて分かりやすい

大体のページに図があって、初めて知った概念などの理解をする補助になりました。文章読んでよくわからなかったら図を先にみて理解してました。

第7章までやれば基礎力が身につく

この章まで終われば、一旦は基礎知識OKな気がしました。 仕事でk8sをさわらないけど、何をしているの知りたいとか動いてるGKEを追えるようになりたいとかの理由でこの本を読み始めた人は一旦区切りかなとか思います。

第9章 リソース管理とオートスケーリング

k8sを利用する上でかなりのメリットかなと思いました。アプリの負荷にあわせてスケールアウトを自動でやってくれたりするのは可用性を高めてくれてかなりよきですね。
仕事で利用しているGKEではあまり高負荷がかかる場面もないのでここらへんの機能が効果的に発揮されてる場面に遭遇したことがほぼないのが残念です。

運用上のベストプラクティスをもっと知りたい

この本を読んでて思ったのが、実際の運用だとどの機能をどれぐらい利用して構築しているんだろう、です。 ヘルスチェックや柔軟なスケジューリングやセキュリティなど便利な機能がたくさんあり、それらを知れてとてもよかったです。ただ、僕ぐらいのk8s初心者だと運用レベルをどれぐらい高めればいいのかって疑問がでてきました。何かしらのベンチマークとか取れたりするのかな。。今後そこらへんも調べたいと思いました。

この本は体系的にk8sを学べて最高です。文句とかは一切ないです。

マイクロサービスとの相性の良さ

複数のコンテナを安全に管理することができるk8sはやっぱりマイクロサービスとの相性はかなりいいですね。 逆にマイクロサービスでなく高負荷がかかったりしないモノリスなアプリだった場合はk8sはオーバースペックかもなと思いました。普通にCloud RunとかECSとかそういうので運用のほうが費用面も考えてコスパがいい気がしてます。もちろん、利用する言語や求められるシステムによっては選択はかなり変わると思いますが。
マイクロサービスやモノリスといった話はそのまま組織論として置換できそうで、大規模なアプリや多数の開発メンバーを抱えている組織だとそれぞれを分離させて管理できるk8sといった技術はかなり有用だなと改めて思いました。 逆に小さい組織の場合はもっとミニマムかつ小回りが聞く技術構成にしたりすると救われそうですね。

まとめ

k8sの勉強において最高最強の本でした。 あと、GitOptsについてもこの本きっかけで理解が深まったのでよかったです。