仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん
posted with ヨメレバ
小笠原種高 マイナビ出版 2021年02月01日頃
点数
77点
感想
説明が丁寧でとても読みやすかった。
また、コマンドを1つずつ順番に入力していくので、理解しやすかった。
Kubernetesに関しては参考になる程度で、本格的に使用する場合は別の情報が必要になると思う。
docker runで起動したコンテナ間で通信させる方法
- docker network create xxx でネットワークを生成
- docker runに–net=ネットワーク名を指定する。
- 使い終わったらdocker network rm xxxでネットワークも削除する。
※通常はdocker composeを使うので、上記を使うことはまずない
Kubernetes
Kubernetesとは
- クーベネティスと読む。
- k8sと略す。
- コンテナのオーケストレーションツールであり、ロードバランサを使ってコンテナを冗長構成にする場合に必要になる。
そのため、プログラマが使うことはほとんどない。
Kubernetesで何をできるかを知っておけばよい。 - 複数のマシンがあり、その1台1台に複数のコンテナがあることが前提である。
- Docker Composeを各マシンでupしたり監視するのは大変だが、Kubernetesを使えば煩雑さがなくなる。
(Docker Composeはコンテナの起動までだが、Kubernetesはその状態の維持までやってくれる) - マニフェストファイル(compose.yamlのようなもの)を作っておけば、それに従って各マシンにコンテナを作成・管理してくれる。
マスターノードとワーカーノード
- Kubernetesはマスターノードとワーカーノードで構成される。
- 「ノード=マシン」と考えればよい。
- マスターノード:ワーカーノード上のコンテナを管理する。現場監督・棟梁。
マスターノード上ではコンテナは動いていない。 - ワーカーノード:コンテナが動作するマシン。
- マスターノードとワーカーノードで構成された一群をクラスターと呼ぶ。
- 管理者はマスターノードを初期設定や調整をするだけで、ワーカーノードを直接管理することはない。
Kubernetesを利用するために必要なソフトウェア
- Kubernetes本体
- CNI: Container Networking Interface(コンテナ用の仮想ネットワークドライバ)、代表的なものとしてflannel, Calico, AWS VPC CNIなど。
- マスターノードにはコンテナの状態管理のためにetcsというデータベースをインストールする。
(マニフェストファイルはetcdに書き込まれる。この情報によってPodが管理される) - 当然だが、ワーカーノードにはDocker Engineなどのコンテナエンジンが必要。
- 管理者のPCには、マスターノードにログインして初期設定・調整を行うことができるkubectlをインストールする。