Kubernetes-architecture
Kubernetes-アーキテクチャ
この章では、Kubernetesの基本アーキテクチャについて説明します。
Kubernetes-クラスターアーキテクチャ
次の図に示すように、Kubernetesはクライアントサーバーアーキテクチャに従います。 ここで、マスターは1台のマシンにインストールされ、ノードは別のLinuxマシンにインストールされています。
マスターとノードの主要なコンポーネントは、次のセクションで定義されます。
Kubernetes-マスターマシンコンポーネント
Kubernetes Master Machineのコンポーネントは次のとおりです。
etcd
クラスター内の各ノードで使用できる構成情報を保存します。 これは、複数のノードに分散できる高可用性キーバリューストアです。 機密情報が含まれている可能性があるため、Kubernetes APIサーバーからのみアクセスできます。 これは、すべてにアクセス可能な分散キー値ストアです。
APIサーバー
Kubernetesは、APIを使用してクラスターですべての操作を提供するAPIサーバーです。 APIサーバーはインターフェースを実装します。つまり、さまざまなツールやライブラリが簡単に通信できます。 Kubeconfig は、通信に使用できるサーバー側ツールと一緒のパッケージです。 Kubernetes APIを公開します。
コントローラーマネージャー
このコンポーネントは、クラスターの状態を調整してタスクを実行するほとんどのコレクターを担当します。 一般に、それは非終了ループで実行され、APIサーバーへの情報の収集と送信を担当するデーモンと見なすことができます。 クラスターの共有状態を取得し、サーバーの現在のステータスを目的の状態にするために変更を行います。 キーコントローラーは、レプリケーションコントローラー、エンドポイントコントローラー、名前空間コントローラー、およびサービスアカウントコントローラーです。 コントローラーマネージャーは、さまざまな種類のコントローラーを実行して、ノード、エンドポイントなどを処理します。
スケジューラー
これはKubernetesマスターの重要なコンポーネントの1つです。 ワークロードの分散を担当するマスターのサービスです。 クラスターノードの作業負荷の使用率を追跡し、リソースが利用可能なワークロードを配置し、ワークロードを受け入れます。 言い換えれば、これはポッドを利用可能なノードに割り当てる責任があるメカニズムです。 スケジューラーは、ワークロードの使用率と新しいノードへのポッドの割り当てを担当します。
Kubernetes-ノードコンポーネント
以下は、Kubernetesマスターと通信するために必要なノードサーバーの主要コンポーネントです。
港湾労働者
各ノードの最初の要件はDockerです。これは、カプセル化されたアプリケーションコンテナーを比較的孤立しているが軽量なオペレーティング環境で実行するのに役立ちます。
キューブレットサービス
これは、コントロールプレーンサービスとの間で情報を中継する各ノードの小さなサービスです。 etcd ストアと対話して、構成の詳細とライトの値を読み取ります。 これは、コマンドを受信して作業するためにマスターコンポーネントと通信します。 その後、 kubelet プロセスは、作業状態とノードサーバーを維持する責任を負います。 ネットワークルール、ポート転送などを管理します。
Kubernetesプロキシサービス
これは各ノードで実行されるプロキシサービスであり、外部ホストでサービスを利用できるようにします。 要求を正しいコンテナに転送するのに役立ち、プリミティブな負荷分散を実行できます。 これにより、ネットワーク環境が予測可能でアクセスしやすくなり、同時に隔離されます。 ノード上のポッド、ボリューム、シークレットの管理、新しいコンテナの健康診断の作成など。
Kubernetes-マスターおよびノード構造
次の図は、Kubernetesマスターとノードの構造を示しています。