web-dev-qa-db-fra.com

Est-ce que GKE supporte nginx-ingress avec static ip?

J'utilise l'entrée Google Cloud. Également déployé le nginx-ingress et en essayant de configurer en utilisant l'adresse IP statique dans GKE.

  • Peut-on utiliser à la fois Google Cloud ingress et nginx-ingress dans le même cluster?
  • Comment utiliser nginx-ingress avec static-ip?

Merci

6
John

Première question

Comme Radek 'Goblin' Pieczonka vous l'a déjà signalé, il est possible de le faire. Je voulais simplement vous connecter à la documentation officielle concernant cette affaire:

Si vous avez plusieurs contrôleurs d’Ingress dans un même cluster, vous pouvez En choisir un en spécifiant l’annotation ingress.class, par exemple en créant une Ingress avec une annotation telle que

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

ciblera le contrôleur GCE, forçant le contrôleur nginx à ignorer , alors qu'une annotation comme

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

Deuxième question

Puisque vous utilisez Google Cloud Platform, je peux vous donner plus de détails sur cette implémentation de Kubernetes dans Google.

Considérez que:

Par défaut, Kubernetes Engine attribue des adresses IP Externes éphémères aux applications HTTP exposées via une entrée.

Toutefois, vous pouvez bien entendu utiliser une adresse IP statique pour votre ressource d'entrée, il existe un guide officiel étape par étape vous montrant comment créer un équilibrage de charge HTTP avec Ingress en utilisant une ressource d'entrée et lier une adresse IP statique ou comment promouvoir une adresse IP "éphémère" déjà utilisée en une adresse statique.

Essayez de le parcourir et si vous rencontrez un problème, mettez à jour la question et posez la question!

3
GalloCedrone

Pour le contrôleur nginx-ingress, vous devez définir l’IP externe sur le service:

spec:
  loadBalancerIP: "42.42.42.42"
  externalTrafficPolicy: "Local"
1
Reinhard Nägele

L'exécution de plusieurs contrôleurs d'entrée dans kubernetes est tout à fait acceptable, mais ils doivent savoir quels objets Ingress ils sont supposés instancier. Cela se fait avec une annotation spéciale comme:

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

ce qui indique que cette entrée est supposée être fournie par et uniquement par le contrôleur d’introduction de nginx.

En ce qui concerne IP, Some cloud providers allow the loadBalancerIP to be specified., vous pouvez contrôler l’adresse IP publique d’un service.

1