Kubernetes
Google主導で開発されたコンテナオーケストレーションシステム。2014年ごろから開発され、2017年秋にDockerがKubernetesを正式に統合・サポートすることが発表されたのでデファクトの地位を築いている。
ツール
minikube
Minikubeはローカルで簡単にKubernetesを実行できるツールです。Kubernetesの検証や開発者のために、ノートPC上のVM環境でシングルノードのKubernetesクラスタを実行します。注意事項としては、シングルノードの環境になるので検証できない機能もあります。その場合は適宜クラウド環境に複数ノードでクラスを用意しましょう。https://dev.classmethod.jp/cloud/minikube/ Docker for MacにKubernetes関連の機能が追加されるまではよく使われていた
Docker for MacでKubernetes環境構築できるようになったので利用は減っていくと思われる
kubectl
Kubernetesを操作するCLI。マネージドサービスでもローカルでも使う
リソース
Node
Kubernetesクラスタで実行するコンテナを配置するためのサーバ
クラスタ管理下に登録されているDockerホストのことで、コンテナをデプロイするために利用する
Kubernetesクラスタには全体を管理するサーバであるMasterが最低1つ配置され、Master Nodeとそれ以外のNode群で構成される
Namespace
Kubernetesクラスタ内で作る仮想クラスタ
Kubernetesはクラスタの中に入れ子となる仮想的なクラスタを作成できる
Pod
コンテナ集合体の単位で、コンテナを実行する方法を定義する
1つ以上のコンテナを持つ
同じPodを複数のNodeに配置する、1つのNodeに複数配置することもできる
ReplicaSet
同じ仕様のPodを複数生成・管理する
Deployment
ReplicaSetの世代管理をする
Service
Podの集合にアクセスするための経路を定義する
Ingress
ServiceをKubernetesクラスタの外に公開する
Master Nodeを構成する管理コンポーネント
kube-apiserver
KubernetesのAPIを公開するコンポーネント。kubectlからのリソース操作を受け付ける
etcd
高可用性を備えた分散キーバリューストア
kube-scheduler
Nodeを監視し、コンテナを配置する最適なNodeを選択する
kube-controll-manager
リソースを制御するコントローラーを実行する