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