ホストネットワーク、ホストポート、ノードポート、ロードバランサー、イングレス
ポッドはサービスのバックエンドであるため、ポッドの公開はサービスと同じです。
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