Oracle Cloud Infrastructureドキュメント

Kubernetesクラスタとノードについて

Kubernetesクラスタは、ノードのグループです。 ノードはアプリケーションを実行しているマシンです。 各ノードは、物理マシンまたは仮想マシンにすることができます。 ノード容量(そのCPU数とメモリー量)は、ノードの作成時に定義されます。 クラスタを複数の用途の間で分割するために、クラスタをネームスペースに編成することができます。 クラスタは:

  • 1つ以上のマスター・ノード(高可用性のために、通常は多数のマスター・ノードがあります)
  • 1つまたは複数のワーカー・ノード(時にはミニ・オンと呼ばれる)

クラスタのマスター・ノードでは、複数のプロセスが実行されます:

  • Kubernetesコマンドライン・ツール(kubectl)とREST APIを使用してAPI操作をサポートするkube-apiserver。高度なKubernetes操作に必要な入室コントローラも含まれています。
  • さまざまなKubernetesコンポーネント(たとえば、レプリケーション・コントローラ、エンドポイント・コントローラ、ネームスペース・コントローラ、およびserviceaccountsコントローラ)を管理するためのkube-controller-manager
  • kube-schedulerを使用して、クラスタ内でジョブを実行する場所を制御
  • クラスタ構成データを格納するetcd

各ワーカー・ノードは2つのKubernetesプロセスを実行します:

  • kubelet:マスター・ノードとの通信
  • ネットワーキングを処理するkube-proxy

各ワーカー・ノードは、Dockerランタイムも実行します。

マスター・ノード上で実行されているKubernetesプロセスは、Kubernetes Control Planeと総称されます。 コントロール・プレーン・プロセスは、クラスタの状態をモニターして記録し、リクエストされた操作をクラスタ内のノード間で分散します。

ワーカー・ノード上で動作するアプリケーションが複数のコンテナで構成される場合、Kubernetesはコンテナをポッドと呼ばれる単一の論理ユニットにグループ化し、管理と発見を容易にします。 ポッド内のコンテナは、同じネットワーク・ネームスペースと同じストレージ・スペースを共有し、Kubernetesコントロール・プレーンで単一のオブジェクトとして管理できます。 同じ機能を提供するいくつかのポッドは、サービスと呼ばれる単一の論理セットにグループ化できます。

Kubernetesマニフェスト・ファイルは、アプリケーションをKubernetesクラスタ内のノードにデプロイする方法を指定するyamlまたはjsonファイル内の命令から構成されています。 この指示には、Kubernetesデプロイメント、Kubernetesサービス、およびクラスタ上に作成されるその他のKubernetesオブジェクトに関する情報が含まれています。 マニフェストは、通常、ポッド・スペック、またはdeployment.yamlファイルとも呼ばれます(他のファイル名も使用できます)。 Kubernetesマニフェスト・ファイルに含めるパラメータについては、Kubernetes documentationを参照してください。

ノード・プールは、すべて同じ構成を持つクラスタ内のマシンのサブセットです。 ノード・プールを使用すると、構成が異なるクラスタ内のマシンのプールを作成できます。 たとえば、仮想マシンとしてクラスタ内に1つのノード・プールを作成し、ベアメタル・マシンとしてノード・プールを作成することができます。 クラスタには最低1つのノード・プールが必要ですが、ノード・プールにはワーカー・ノードが含まれている必要はありません。