はじめに
今回は、
「『Kubernetes』って最近よく耳にするし、本もいっぱい出ているけど、どれを使って勉強するのがいいのかな?」
「何から手を付ければいいんだろう?」
という方に向けて、Kubernetesのおすすめの学習方法をご紹介いたします。
実際に私が、Kubernetesを学習したときに使用した書籍から、
- Kubernetes操作のための必須知識
- Kubernetes実践のための仕組み、背景の知識
それぞれの目的に適した書籍と学習方法をご提案いたします。
目次
Kubernetesの理解に必要な前提知識
なお、教則本に解説のない前提知識がいくつかあります。特にKubernetesを理解する上で欠かせないのは以下の2つです。
- Linuxの基本操作
- IPアドレス(L3)、ポート(L4)、プロトコル(L7)のネットワークの基礎
これらは本当に基本的な知識だけあれば大丈夫です。
例えば
「仮想マシンにCentOS7をインストールして、IPアドレスを振り、SSH接続する」
この文の意味がわかり、実践できるなら大丈夫だと思います。
Kubernetes操作のための必須知識
必須知識
Kubernetesを最低限理解して、なんとなく操作出来るようになるためには以下のことを学ぶ必要があります。
- Dockerコンテナの基礎
- kubectlを利用した基本操作
- kubernetesの基本的なオブジェクトと用語
- マニフェストからのオブジェクトの作成
学習のオススメ書籍と読み方
これらの必須知識を習得するためにはこの本がオススメです。
Dockerから入るKubernetes -コンテナ開発から運用まで
目次構成
■1章 DockerとKubernetesの概要
■2章 コンテナ開発を習得する5ステップ
■3章 K8s実践活用のための10ステップ
■付録 学習環境の構築法
こちらの本は、15Stepのハンズオンを行うことで、Docker・Kubernetesの知識ゼロの人でも理解できるように分かりやすく説明されています。
付録に学習環境構築のための資料が付属していますが、これが本当に便利で、
PCのVirtualBOX上に、10~15分ほどでクラスタ模擬環境が構築できてしまいます。
さらに、打つコマンドと結果がセットで記述されているため、時間のない方は、実践せずに、読み進めるだけでも基本的なことは理解できると思います。
Kubernetes操作のための基本学習はこの書籍のみで十分だと思います。
Kubernetes実践のための必要知識
必要知識
「実際にKubernetesを設計構築する必要がある。」
「コンテナの運用において Kubernetesを前提に、環境を選定する必要がある。」
などのハイレベルな要求を受けている人には、以下の知識の習得が必要だと思います。
- Kubernetes内部の仕組みの理解
- Kubernetes外部コンポーネントの種類と理解
- Kubernetesの監視の理解
- Kubernetesのアクセス管理の理解
- Kubernetesの環境選択についての理解
- クラウドネイティブの理解
- パブリッククラウドのマネージドサービスとしてのKubernetesの理解
- コンテナの仕組みの理解
- コンテナセキュリティの理解
学習のオススメ書籍と読み方
これらの必要知識は多岐にわたり、さらにそれぞれについてある程度深く理解をする必要があります。
一般的に、「Kubernetesの習得は難易度が高い」と言われる理由はここにあります。
以下の4冊を使って、深い知識を得る必要があります。
Kubernetesで実践するクラウドネイティブDevOps -Oreilly
目次構成
■1章 クラウドでの革命
■2章 Kubernetes最初の一歩
■3章 Kubernetes環境の選択
■4章 Kubernetesオブジェクトの基本操作
■5章 リソースの管理
■6章 クラスタの運用
■7章 Kubernetesの強力なツール
■8章 コンテナの実行
■9章 Podの管理
■10章 設定と機密情報
■11章 セキュリティとバックアップ
■12章 Kubernetesアプリケーションのデプロイ
■13章 開発ワークフロー
■14章 Kubernetesにおける継続的デプロイ
■15章 オブザーバビリティと監視
■16章 Kubernetesにおけるメトリクス
実践に必要な知識の1.~7.に関連した内容が広く書かれています。
特に詳しく書かれていたのは
1章 クラウドでの革命
3章 Kubenetes環境の選択
です。
実践のためにはまずこの書籍を1~3章まで読むことをオススメします。
Kubernetes完全ガイド
目次構成
■第1章 Dockerの復習と「Hello, Kubernetes」
■第2章 なぜKubernetesが必要なのか?
■第3章 Kubernetes環境の選択肢
■第4章 APIリソースとkubectl
■第5章 Workloadsリソース
■第6章 Discovery & LBリソース
■第7章 Config & Storageリソース
■第8章 ClusterリソースとMetadataリソース
■第9章 リソース管理とオートスケーリング
■第10章 ヘルスチェックとコンテナのライフサイクル
■第11章 メンテナンスとノードの停止
■第12章 高度で柔軟なスケジューリング
■第13章 セキュリティ
■第14章 マニフェストの汎用化を行うオープンソースソフトウェア
■第15章 モニタリング
■第16章 コンテナログの集約
■第17章 Kubernetes環境でのCI/CD
■第18章 マイクロサービスアーキテクチャとサービスメッシュ
■第19章 Kubernetesのアーキテクチャを知る
■第20章 Kubernetesとこれから
Kubernetesの仕組みを理解するのに有用な書籍です。
19章 Kubernetesのアーキテクチャを知る
最低限19章を読むことでKubernetesの仕組みが理解できると思います。
Kubernetes実践ガイド
目次構成
■1 章 クラウドネイティブが目指す世界
■2 章 コンテナを支える技術
■3 章 Kubernetes のアーキテクチャ
■4 章 Kubernetes クラスタの構築
■5 章 Kubernetes オブジェクトの概要
■6 章 コンテナアプリケーションカタログ
■7 章 継続的インテグレーション
■8 章 継続的デリバリ
■9 章 マイクロサービス
完全ガイドよりもハイレベルです。
コンテナの仕組みと、Kubernetesのコンポーネントについて詳しく書いてあります。
2章 コンテナを支える技術
3章 Kubernetesのアーキテクチャ
5章 Kubernetesオブジェクト概要
これらの章を学習することで、より深くコンテナとKubernetesについて理解できるでしょう。
Docker/Kubernetes開発・運用のためのセキュリティ実践ガイド
目次構成
■1章 Docker/Kubernetesのおさらい
■2章 コンテナ運用における脅威の事例
■3章 ランタイムのセキュリティTips
■4章 イメージのセキュリティTips
■5章 KubernetesクラスタのセキュリティTips
■6章 アプリケーション間通信を守る
こちらタイトルの通り、セキュリティに特化した書籍です。
コンテナとKubernetesの現場レベルのセキュリティについて、おそらくこの書籍が1番詳しいと思います。
もし設計や運用を行う場合は、こちらの本に一通り目を通すことをオススメします。
おわりに
また、書籍以外にもKubernetes the Hard Way というハンズオンがあります。
構築支援ツールを利用しないでGCP上にKubernetesクラスタを構築するというものです。
こちらはKubernetes内部についてとても理解が深まるのでオススメです。
GCPの初回無料クレジット内(300ドル)での学習ができると思います。
本WebサイトではKubernetes The Hard Wayを仮想環境に構築してみました。
もしよろしければご覧ください。
Kubernetes(K8s)を仮想環境にHardWayに構築してみた。