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