k8sでのサービスのノードポートについての仕組みは何ですか?

Kubernetes内では、Serviceはアプリケーションの論理ネットワークエンドポイントを基盤のインフラストラクチャから切り離すための抽象層です。Service NodePortはServiceの一種で、外部ネットワークがクラスタ内の任意のノードの指定ポートを介してサービスにアクセスすることを可能にします。

Service NodePortの仕組みは次のとおりです:

  1. KubernetesクラスターでServiceを作成し、そのタイプをNodePortに設定すると、KubernetesはそのServiceにランダムなポート(NodePort)を割り当てます。このポートの範囲は通常、30000から32767の間にあります。
  2. Kubernetesは、クラスタ内の各ノードに自動的にNodePortを監視するネットワークルールを設定します。
  3. NodePortを介してServiceにアクセスする外部トラフィックが任意のノードを介して通過する場合、そのノードはトラフィックをServiceのバックエンドPodに転送します。これはiptablesルールまたはIPVSによって実現されます。
  4. ServiceはクラスターIPを生成し、そのIPはServiceの仮想IPアドレスとしてクラスター内で使用されます。ノードがトラフィックを受信し、それをServiceのバックエンドPodに転送するときには、この仮想IPアドレスが使用されます。

要概括一下,Service NodePort 的原理是在每个节点上配置监听 NodePort 的网络规则,将外部流量转发到 Service 后端的 Pod。这样可以让外部网络通过集群中任何节点指定的端口访问 Service。

bannerAds