web-dev-qa-db-ja.com

GKEは静的IPでnginx-ingressをサポートしていますか?

私はGoogle Cloud Ingressを使用しています。また、nginx-ingressとGKEで静的IPアドレスを使用して設定しようとしています。

  • 同じクラスターでGoogle Cloud Ingressとnginx-ingressの両方を使用できますか?
  • 静的IPでnginx-ingressを使用するにはどうすればよいですか?

ありがとう

9
John

最初の質問

Radek 'Goblin' Pieczonkaがすでに指摘しているように、そうすることは可能です。この件に関して 公式ドキュメント にあなたをリンクしたかっただけです:

1つのクラスターに複数のIngressコントローラーがある場合は、ingress.classアノテーションを指定することで1つを選択できます。たとえば、次のようなアノテーションでIngressを作成します。

metadata:
  name: foo
  annotations:
    kubernetes.io/ingress.class: "gce"

gCEコントローラーをターゲットにして、nginxコントローラーにそれを無視させます。

metadata:
  name: foo
  annotations:
    kubernetes.io/ingress.class: "nginx"

二番目の質問

Google Cloud Platformを利用しているので、GoogleでのKubernetesのこの実装に関する詳細を説明できます。

次のことを考慮してください。

デフォルトでは、Kubernetes Engineは、Ingressを通じて公開されるHTTPアプリケーションに一時的な外部IPアドレスを割り当てます。

ただし、もちろん、入力リソースにアドレス指定された静的IPを使用できます ステップガイドへの公式ステップがあります 入力リソースを使用してIngressでHTTP負荷分散を作成し、リンクする方法を示します静的IP、またはすでに使用中の「エフェメラル」IPを静的に昇格させる方法。

試してみて、問題が発生した場合は、質問を更新して質問してください!

3
GalloCedrone

Nginx-ingressコントローラーの場合、サービスに外部IPを設定する必要があります。

spec:
  loadBalancerIP: "42.42.42.42"
  externalTrafficPolicy: "Local"
2

Helmを使用してnginx-ingressをデプロイする場合。

最初に静的IPアドレスを作成します。 Googleでは、ネットワークロードバランサー(NLB)は地域の静的IPのみをサポートしています。

gcloud compute addresses create my-static-ip-address --region us-east4

次に、IPアドレスをloadBalancerIPパラメータとしてnginx-helmをインストールします

helm install --name nginx-ingress stable/nginx-ingress --namespace my-namespace --set controller.service.loadBalancerIP=35.186.172.1
2
Bernie Lenz

Kubernetes内で複数のIngressコントローラーを実行することは完全に問題ありませんが、インスタンス化することになっているIngressオブジェクトを認識する必要があります。それは次のような特別な注釈で行われます:

kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: "nginx"

これは、このイングレスがnginxイングレスコントローラによってのみ提供されることが期待されることを示しています。

IPについては、Some cloud providers allow the loadBalancerIP to be specified.これにより、サービスのパブリックIPを制御できます。