web-dev-qa-db-ja.com

Kubernetes:サービスIPとポッドIPの関係

Kubernetesネットワーキングについてもう少し理解しようとしています。そのため、Google Cloudにクラスターをデプロイし、ネットワーキングを確認しました。gcloudcontainer clusters describe cluster0 | grep -i cidr

clusterIpv4Cidr: 10.20.0.0/14        # --cluster-cidr
nodeIpv4CidrSize: 24
servicesIpv4Cidr: 10.23.240.0/20     # --service-cluster-ip-range

したがって、最初はポッドIPの場合です。

First IP: 10.20.0.1
Last IP: 10.23.255.254

サービス

First IP: 10.23.240.1
First IP: 10.23.255.254

ポッドの範囲にサービスIPの範囲が含まれているのは常にこのようですか?同じネットワーク層を使用していますか?

3
DenCowboy

Kubernetes network がどのように作成されるかは長い話です...

Kubernetesは、ポッドが到達するホストに関係なく、ポッドが他のポッドと通信できることを前提としています。すべてのポッドは独自のIPアドレスを取得するため、ポッド間のリンクを明示的に作成する必要はなく、コンテナポートのホストポートへのマッピングを処理する必要もほとんどありません。これにより、ポートの割り当て、ネーミング、サービスディスカバリ、ロードバランシング、アプリケーション構成、移行の観点から、ポッドをVMまたは物理ホストのように扱うことができる、後方互換性のあるクリーンなモデルが作成されます。

Kubernetesは、プライベートとパブリックの両方のアクセス可能なIPアドレスを使用します。現時点では、パブリックIPアドレスは言及されていません。

Kubernetesはアドレスのプライベートプールを使用して、クラスター内の通信を提供します。すべてのポッドとサービスにはプライベートIPアドレスがあります。 Kubernetesのサービスは仮想です-それらはNATによって作成され、iptablesはアドレス指定されたサービスからポッドへのポートリダイレクトを作成します。

クラスター内の通信の基本ルール:

  • すべてのコンテナはNATなしで他のすべてのコンテナと通信できます
  • すべてのノードは、NAT=なしですべてのコンテナと通信できます(その逆も同様))

あなたの質問について:公式 Kubernetesネットワーク ドキュメントの状態:

--service-cluster-ip-range ipNet -  A CIDR notation IP range from which to assign service cluster IPs. This must not overlap with any IP ranges assigned to nodes for pods.

そのため、ポッドで使用されるのと同じ範囲のサービスIPを持つことはお勧めしません。

Kubernetesネットワーキングに関するビデオ を見るか、または 図解付きのガイド を見ることを強くお勧めします。

3
d0bry
clusterIpv4Cidr: 10.20.0.0/14        # IP subnet which is configured on all pods.
nodeIpv4CidrSize: 24                 # CidrSize which is configured on each node
servicesIpv4Cidr: 10.23.240.0/20     # IP subnet which is configured for Services

ポッドから見ると、他のすべてのポッドとサービスは同じサブネット上にあるため、直接到達可能です。これは、ゲートウェイの構成とルーティングが関与していないことを意味します。ちなみに、serviceIpv4CiderがclusterIPv4Ciderの範囲外の場合は、ゲートウェイの構成とルーティングが必要です。それは何か違うものです。

したがって、以下の警告は、service-cluster-ip-rangeをポッドに使用してはならないことを示していますが、それらがclusterIPv4Ciderの範囲と重複していることは問題ありません。それは意図されています。

「これは、ポッドのノードに割り当てられたIP範囲と重複してはなりません。」

0
Charles Lim