しくみがわかるKubernetes Azureで動かしながら学ぶコンセプトと実践知識
筆者はコンテナ技術であるDockerを既存システムの開発環境の構築やバッチの実行環境として仕事で触れている程度の能力。
TL;DR;
- 全体的にざっくり抑えられた入門書であるが、仕事で使うレベルまでの知識は得られない
- 3~4割近くがkubernetesの裏側の仕組みの説明をされているので、その部分が興味がない人は冗長に感じるかもしれない
- Azureじゃなくても慣れているクラウドのk8sマネージドサービスでハンズオンの環境としての代替は可能
何を期待してこの本を手にとったか
- 仕事で使用する技術スタックの1つとして使われた
- デプロイの速度を上げるための手段としてコンテナの利用を検討しており、直近でもてはやされているKubernetesという技術が個人的に気になっていた
- 上記のタイミングでこの本が翔泳社の半額キャンペーンでやすかった
- 故に特にAzureを使いたいという気持ちは一切ない
- Docker周りの知識や経験はあるが、コンテナオーケストレーションツールについては小耳に挟んだ程度なのでこのタイミングで深堀りたかった
本の内容
構成
- CHAPTER01 コンテナーとKubernetes
- CHPATER02 Kubernetesの環境構築
- CHAPTER03 Kubernetesを動かしてみよう
- CHAPTER04 Kubernetesの要点
- CHAPTER05 コンテナアプリケーションの実行
- CHAPTER06 Deploymentによるアプリケーションのデプロイ
- CHAPTER07 アーキテクチャと設計原則
- CHAPTER08 可用性
- CHAPTER09 拡張性
- CHAPTER10 保守性
- CHAPTER11 リソース分離
- CHAPTER12 可観測性
流れ
- Kubernetesの概要を説明(Chap1~2)
- コンテナオーケストレーションシステムとは
- kubernetesの特徴とは
- Azureの環境構築とサンプル実行(Chap3)
- Kubernetesのざっくりとした理解をするためのハンズオン(Chap4~6)
- NodeやMasterの構成や役割・コンポーネントの説明
- PodやServiceなどのリソース説明とサンプルによるハンズオン
- Kubernetesのアーキテクチャの説明(Chap7~10)
- ハンズオンで動かしてきたリソースがどういう仕組みで動いているかのアーキテクチャ説明
- Kubernetesの可用性・拡張性・保守性がどのような仕組みで維持されているかの説明
- リソース分離方法(Chap11)
- Kubernetes上でどのようにアプリケーションを分割すればいいかの説明
- 監視方法(Chap12)
総評
- Azureをタイトルに入れているが他のマネージドKubernetesを使ってもサンプルの実行には特に問題はない
- Azure特有の話が出てくるのはサンプルの実行時のACRや権限周り・監視・KubernetesのアーキテクチャをAzure上ではどのように実装・実現しているかくらい
- そのためAzureの無料枠が使えない場合など、より慣れているクラウドサービスで代替してもサンプルの実行するまでの環境構築に苦戦する可能性があるくらいで大きな問題にはならない
- Kubernetesを使うための知識だけならChapter1~6,11だけを読めば良い
- Chapter7~10はKubernetesの裏側の仕組みを説明しているだけなので、ただ使いたいだけの人には不要な知識かもしれない (アーキテクチャや設計周りの話が好きな自分は楽しんで読めたが)
- 監視の章はおまけレベルの話なので読み飛ばしても構わないと感じた
- この本を読んだだけでは仕事で使うレベルまでの知識は得られない
- 包括的に説明はされているものの、運用観点での話はサラッと触れている程度
- サンプルのコンテナがHTTPリクエストを受け付けてランダムに画像を表示するだけという非常に単順な構成
- 実際のアプリで出てくる永続化の観点やログの取り扱いなどの話はまったく出てこない
- そのため実際に仕事で使おうとすると追加で知識を取り入れる必要が出てくる
- つまり、どこまでいってもあくまでも入門書ということ
- 細かく気になった点としてChapter6の最後に環境を削除するオペレーションをするのだが、その後のChapter7以降もマニフェストが出てきて適用している場面があり、実際にハンズオンしたい人には改めて環境を作らされるという二度手間をさせられる点
感想
kubernetesの概要はつかめたので、カンファレンスで話される内容や技術記事の内容の理解が進むようになった。 より一步進むためにはそういった知識やDeepDiveしている参考書を探して手に取り、よりkubernetesへの理解を深めていきたい。