Kubernetes ネットワークの概要
Nodes
一般に、Kubernetes は "クラスター" と呼ばれています。 おおまかに言うと、クラスターは、パフォーマンスと可用性を向上するために、連携してリソースを共有するコンピューターのグループです。 クラスター内のいずれかのコンピューターに障害が発生した場合、そのクラスターで実行されているサービスは、残りの機能しているコンピューターで実行し続けることができます。
Microsoft Azure では、これらのコンピューターは "仮想マシン (VM)" と 呼ばれます。 Kubernetes では、これらの VM は "ノード" と呼ばれます。
ノードには、相互の通信とネットワーク トラフィックの効果的なルーティングのためにネットワーク接続が必要です。 また、ノードは Kubernetes "コントロール プレーン" とも通信する必要があり、これによって、中核となる Kubernetes サービスおよびアプリケーション ワークロードのオーケストレーションが得られ、アプリケーション ワークロード リソースを実行できるようになります。
ポッド
Kubernetes では、アプリケーション ワークロード リソースにはポッド、デプロイ、セットが含まれます。 ポッドは、Kubernetes クラスター内にデプロイ可能な最小のユニットです。 これらは、ノードで使用可能なプロセッサとメモリのリソースを最適に使用できるようにノード間に分散されます。 通常、ポッドはアプリケーションの単一インスタンスまたはサブコンポーネントを表します。 ポッドで実行される可能性があるのは、顧客のカート内の商品を管理するショッピング カート コンポーネントや、完了した注文の処理を行う配送コンポーネントです。
同じポッドの複数のコピー ("レプリカ") を実行できます。 レプリカは、ノード間に複数のポッドを分散することで高可用性を実現します。 ポッドに複数のレプリカがあると、あるポッドでコンポーネントの実行に失敗しても、アプリケーションは引き続き動作できます。
Kubernetes のスケーリング機能を使用すると、クラスター上の需要レベルに応じてポッドを追加または削除できます。 Kubernetes の自己復旧機能を使用すると、障害が発生したポッドを置き換えることができます。また、ローリング更新のサポートが組み込まれているため、ダウンタイムなしで新しいバージョンのアプリケーションが自動的にデプロイされます。
ポッドには、初期デプロイ中に新しい IP アドレスが割り当てられます。 この IP アドレスは、そのポッドとのすべてのネットワーク通信に使用されます。 ポッドに新しい IP アドレスが割り当てられるシナリオは多数あります。 クラスターでの需要が高く、スケーリングが行われると、新しいポッドがデプロイされます。 アプリケーションを更新すると、古いポッドを置き換える新しいポッドがデプロイされます。 ポッドが失敗すると、新しいポッドによって自動的に置き換えられます。 これらのどのシナリオでも、ポッドの IP アドレスが新しくなります。
ポッドの IP アドレスが頻繁に変更される場合、Kubernetes では目的のアプリケーションに到達するためのネットワーク トラフィックの送信先をどのように認識するのでしょうか? 答えは "サービス" です。
サービス
Kubernetes "サービス" がポッド グループの前面に配置され、静的 IP アドレスを提供します。 トラフィックがサービスに到着すると、サービスによりラウンドロビン方式バックエンド ポッドのセットに分散されます。 このサービスはポッドの IP アドレスの変更を追跡し、ネットワーク トラフィックが確実に正しいポッドに送信されるようにします。