ishikawa_pro's memorandum

若手webエンジニアの備忘録です.

Swift Node.js Docker AWS etc...色々やります。

「イラストでわかるDockerとKubernetes」を読んだ

こんにちは。
今日は、「イラストでわかるDockerとKubernetes」を読んだのでその記録です。
余談ですが今回は、iPad air4 を使って電子書籍で読んでみたのですがApple Books アプリは結構使い勝手が良くて便利ですね。電子だといいアプリないしなんか読みずらいなと思って最近は物理本に戻っていたのですが、Apple公式アプリがこんなに便利になっていたとは思いませんでした笑

読んだモチベーション

最初にこの本を知ったのは fukabori.fm で著者の徳永航平さんがゲスト出演されていてコンテナランタイムについてお話されていて、この本が紹介されていたからです。

fukabori.fm

このエピソード内でのコンテナランタイムなどのお話もとても面白くて、コンテナランタイムについて興味がわいてきて、本もわかりやすいとiwashiさんが紹介されていたので、エピソードが終わった後に即ポチしました。
あとは、k8sの勉強をしようと思って 「Kubernetes 完全ガイド」 を買ったはいいものの、思ったよりk8sに関する仕組み的な部分は書いてなさそうで、この本を読む前にもう1ステップはさみたいなとちょうど思っていたところだったのもあります。

感想

最初に読みやすさ的な部分ですが、タイトルの通りでイラストが多めなのと、ページ数も200ページくらいなのでサクッと読めました。(2日くらい)
タイトルからは初心者向けの本なのかなと思ってしまいそうですが、中身はコンテナランタイムに関する話やコンテナ技術とは何で、DockerやKuberntesが何をしてるのかについて解説してあります。なので、初心者というよりはある程度Dcokerなどを使い慣れててDockerやk8sが何をしてるのかしっかり理解したい人向けかなと思います。
構成は、

  • 1章 コンテナ技術の概要
  • 2章 Dockerの概要
  • 3章 kubernetesの概要
  • 4章 コンテナランタイムとコンテナの標準仕様の概要

となっています。
2章での、コンテナのレイヤ構造についての解説は、今までざっくりとした知識しかなかったので勉強になりました。 実際にoverayファイルシステムを使って、ファイルを重ね合わせてマウントしてみたりする部分や、 docker save コマンドでコンテナイメージをtar形式で出力して実際に中身を見てみる部分は、どのようにしてイメージからルートファイルシステムを作成しているのかが理解できてとてもよかったです。
3章は、k8sの役割についてや、Pod, Deployment, Service などについても図を使って分かりやすく説明されていました。 3章の最後の方では、 kubectl apply などを実行したときに k8s がどのようにして Pod を作成・実行してるのかについて説明されていました。正直この辺の知識は全然なかったので、 kubelet がPodの設定などを受け取り CRI ランタイムへ命令して実際にイメージ取得をしたりコンテナ群をPodとして作成したりしていると知りました。
4章では、コンテナランタイムについて解説されていました。 CRIランタイムやOCIランタイムについての役割や、それぞれが実際にどのように協調してコンテナが作成され動いているのかが説明されていました。また、CRIとOCIの仕様に準拠したそれぞれのランタイムについていくつか紹介などもされています。
全体的に200ページとは思えないくらいの内容の濃さで、とても勉強になりました。今までは コンテナ=Docker で、コンテナをいい感じにオーケストレーションしてくれるのが k8s みたいな認識でしたが、コンテナ技術の仕組みなどを理解することで、いろいろな用語の理解や docker run などのコマンドを叩いたときに裏で何が起きているのかなどをしっかり理解することができました!
dockerなどのコンテナ技術について、踏み込んで理解したい人にはおすすめだと思います。
あと、この本を読んだ後に fukabori.fm のコンテナランタイムのエピソードを聞くとより会話についていきやすいかもしれないです。(逆も復習できていいかもしれない)
次は 「Kubernetes 完全ガイド」を読んでみようと思います。