Kubernetes Engineの色々
●Kubernetes EngineはGCPが管理するKubernetesサービスです。
・このサービスを使用すると、利用者はKubernetesプラットフォームを管理せずに、独自Kubernetesクラスタを作成して利用することができます。
・Kubernetesは仮想マシンのクラスタでコンテナを実行します。またはコンテナの場所を決定し、コンテナの正常性をモニタリングし、仮想マシンインスタンスのライフサイクル全体を管理します。
・Kubernetesクラスタはマスターノードと1個以上のノードから構成されてます。
このノードはクラスタのワーカーです。マスタノードはクラスタを制御します。
・マスターノードはKubernetes API、コントローラ、スケジューラなどサービスを管理します。
クラスタでの情報のやり取りはすべて、KubernetesAPIを使用して、マスターノード経由で実行されますた。マスターノードは、ノードでアクションを実行するコマンドを発行します。ユーザはkubectlコマンドを使用して、クラスタとの通信はできます。
・ノードは、クラスタで実行されるワークロードを実行します。ノードは、アプリケーションを実行するように構成されたコンテナを実行する仮想マシンです。
●Kubernetes オブジェクト
ワークロードはどのように分散されるのかを理解するために、基本的な概念を理解する必要があります。
特に、以下の項目は重要です。
・ポッド
・サービス
・ボリューム
・名前空間
-
ポッド
ポッドは、クラスタにおける実行中のプロセスの一つのインスタンスです。ポッドには1個以上のコン テナは含まれます。ポッドは、コンテナにまたがる共有ネットワーキングとストレージを使用します。
各ポッドは一意のIPアドレスとポートの設定を取得します。コンテナはポートに接続され、複数のコンテナの場合、異なるポートに接続され、Localhostで相互に通信できます。ポッドによって、コンテナは分離された仮想マシン、共通ストレージ、1個のIPアドレス、ポートのセットで実行されているかのように動作することができます。このようにすると、構成を変更せずに、同じノードまたは異なるノードで、同じアプリケーションの複数のインスタンス、異なるアプリケーションの異なるインスタンスをデプロイすることができます。
一般的に、ポッドはグループとして作成されてます。レプリカはポッドのコピーであり、一つの単位として管理されるポッドのグループです。ポッドは自動スケーリングもサポートします。スケーリングと正常性をモニタリングを司るメカニズムは「コントローラ」と呼ばれています。
-
サービス
Kubernetesは、ポッドで実行中のアプリと、そのアプリを呼び出すほかのアプリをこのサービスによって、疎結合にすることができます。
サービスとは、APIエンドポイントに安定したIPアドレスを割り当てるオブジェクトです。
ポッドが変更されると、サービスが更新され、サービスはアプリを実行しているポッドの最新リストを保持しています。 -
ReplicaSet
ReplicaSetは定義された数のポッドを維持するために使用されるコントローラです。例えば、あるポッドが異常であると判定される場合、コントローラがポッドを終了して、ReplicaSetはアプリまたはワークロードで十分な数のポッドが実行されていないことを検出し、別のポッドを作成します。
ReplicaSetはポッドの更新や削除を行うためにも使用されます。 -
Deployment
Deploymentは同一のポッドのセットです。あるポッドは終了し、別のポッドが起動すると、このセットのメンバーが変わりますが、ポッドは同じポッドテンプレートを使用して作成されるため、それらは同じアプリケーションを実行するのです。Deploymentに存在すべき最小数のポッドの定義があり、ポッド数がその数を下回った場合は、ReplicaSetで呼び出すことで、新しいポッドがDeploymentに追加されます。
-