クバネティスの外部アクセス問題

クバネティスの外部アクセス問題

AWS で実行されている Kubernetes クラスターがあります。 Kubes ワーカーはプライベートサブネットにあり、マスターはパブリックサブネットにあります。

クラスタが正常に動作しています。ポッドに3つのコンテナを展開し、3つのポートをこれらのコンテナのサービスとして公開します。

インターネットからこのポッドにアクセスしたいです。つまり、外部です。

500個のポッドがあるため、各ポッドにロードバランサーを配布できません。どうすればいいですか?

答え1

私たちはこれについて議論したことを知っていますが、他の人も可能な解決策を知ることができるように、ここでも答えたいと思います。

私が理解しているように、着信トラフィックを要求されたサービス/配布にルーティングするために使用できる受信コントローラが必要です。

IE; this.example.comがあなたのドメインになります。

複数のコンテナで構成されたポッドをデプロイしました。

理論的には、次の項目設定を持つことができます。

apiVersion: extensions/v1beta1 kind: Ingress metadata: name: my-ingress annotations: kubernetes.io/ingress.class: nginx ingress.kubernetes.io/rewrite-target: / spec: tls: - hosts: - this.example.com secretName: my-tls rules: - host: this.example.com http: paths: - path: /one backend: serviceName: this-deploy servicePort: 80 - path: /two backend: serviceName: this-deploy servicePort: 9000 - path: /three backend: serviceName: this-deploy servicePort: 8080

このトピックでは同じサービスを指定しますが、各サービスには異なるポートがあります。

ユーザーがthis.example.com/oneトラフィックエントリコントローラ設定に移動すると、一致するルールが存在し、トラフィックをサービスに送信するルールがあることを確認します。

サービス自体には、トラフィックが転送されるエンドポイントがあります。これはポッド(またはレプリカが多い場合はそれらの1つ)になります。

これらのリソースは、受信コントローラを設定するのに役立ちます。

https://hub.kubeapps.com/charts/stable/nginx-ingress https://github.com/kubernetes/ingress-nginx

関連情報