外部から K8 のポッドにアクセスする 5 つの方法

ホストネットワーク、ホストポート、ノードポート、ロードバランサー、イングレス

ポッドはサービスのバックエンドであるため、ポッドの公開はサービスと同じです。

    1. hostNetwork: true ポッドでこの構成を使用すると、このポッドで実行されているアプリケーションは、ポッドによって開始されたホストのネットワーク インターフェイスを直接参照できます。

    注: 各ポッドの IP は変更されます。

    2. hostPort: コンテナのポートをスケジュールされたノードのポートに直接ルーティングし、ユーザーがホストの IP を通じてポッドにアクセスできるようにします。

    注: Pod を再スケジュールすると、Pod が別のホストにスケジュールされる可能性があるため、Pod とホストの間の対応関係を維持する必要があります。

    3. NodePort: K8s で広く使用されているサービス公開方法です。K8s のサービスはデフォルトでクラスター IP タイプを使用しており、内部的にのみアクセスできるクラスター IP が生成されます。サービスに直接アクセスしたい場合は、サービス タイプを nodePort に変更する必要があります。同時に、「--service-node-port-range」で定義されたサービスのノードポート値 (30000 ~ 32767) を指定します。

    クラスターの外側では、任意の K8s ノードの IP とポート 30000 を使用してサービスにアクセスでき、kube-proxy はラウンドロビン方式でトラフィックをサービスの各ポッドに自動的に転送します。

4. LoadBalancer: サービス上でのみ定義でき、パブリッククラウドが提供するロードバランサーです。

サービスの表示: `kubectl get svc influxdb`

 ClusterIP プラス ポートはサービスにアクセスするために内部的に使用できます

外部は次の 2 つの方法で使用できます。

    任意のノードの IP とポート 30051 がサービス 10.97.121.42:30051 にアクセスします。

    EXTERNAL-IP を使用してアクセスします。これは、クラウド プロバイダーによって提供される負荷分散 IP 10.13.242.236:8086 です。

5. イングレス: イングレス コントローラーは、K8s によって管理されるロード バランシング コンテナーであり、そのイメージには nginx または HAProxy ロード バランサーとコントローラー デーモンが含まれています。

サービスにアクセスするための外部アクセス URL http://influxdb.kube.example.com/ping、入口はポート 80 で、Ingress コントローラーは kube-proxy を転送せずにトラフィックをバックエンド Pod に直接転送します。 LoadBalanceよりもはるかに効率的です

参考: https://jimmysong.io/posts/accessing-kubernetes-pods-from-outside-of-the-cluster/
———————————————
著作権表示: この記事はCSDN ブロガー「Gao Donghai」の元の記事は、CC 4.0 BY-SA 著作権規約に準拠しています。転載する場合は、元のソースのリンクとこの声明を添付してください。
元のリンク: https://blog.csdn.net/qq_23348071/article/details/87185025

おすすめ

転載: blog.csdn.net/boonya/article/details/129444699