Utilizzo di un controller Ingress personalizzato


Questa pagina descrive come utilizzare un controller Ingress personalizzato con Google Kubernetes Engine (GKE).

Usa un controller Ingress personalizzato con il componente aggiuntivo HttpLoadBalancing abilitato

Puoi eseguire un controller Ingress personalizzato, come nginx-ingress, disabilitando il componente aggiuntivo HttpLoadBalancing. Questo impedisce al controller GKE Ingress di elaborare le risorse Ingress.

Se vuoi eseguire un controller Ingress personalizzato con il componente aggiuntivo HttpLoadBalancing abilitato, ad esempio per utilizzare funzionalità come l'impostazione secondaria e Private Service Connect, puoi utilizzare uno dei seguenti approcci:

Devi assicurarti che spec.ingressClassName non venga sovrascritto accidentalmente da alcun processo. Un'operazione di aggiornamento che modifica spec.IngressClassName da valore valido a stringa vuota ("") causa l'elaborazione della risorsa Ingress da parte del controller GKE Ingress.

Configura il campo ingressClassName

Puoi utilizzare un controller Ingress personalizzato impostando il campo ingressClassName nel manifest Ingress. Il seguente manifest descrive un Ingress che specifica il controller Ingress nginx:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
 name: cafe-ingress
spec:
 ingressClassName: nginx
 tls:
 - hosts:
   - cafe.example.com
   secretName: cafe-secret
 rules:
 - host: cafe.example.com

Questa configurazione è supportata con l'API Ingress v1beta1 nelle versioni GKE da 1.18 a 1.21 e con l'API Ingress v1 nelle versioni GKE 1.19 e successive.

Configura una classe Ingress predefinita

Puoi configurare una classe Ingress predefinita per tutte le risorse Ingress in un cluster creando una risorsa IngressClass con l'annotazione ingressclass.kubernetes.io/is-default-class impostata su true:

apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: nginx-public
  annotations:
    ingressclass.kubernetes.io/is-default-class: "true"
spec:
  controller: k8s.io/ingress-nginx

Questa configurazione è disponibile per i cluster che eseguono GKE 1.19 e versioni successive.

Riepilogo del comportamento del controller GKE Ingress

Per i cluster che eseguono GKE 1.18 e versioni successive, il fatto che il controller GKE Ingress elabori o meno una risorsa Ingress dipende dal valore dell'annotazione kubernetes.io/ingress.class e dal campo ingressClassName nel manifest Ingress. Per ulteriori informazioni, consulta la pagina relativa al comportamento del controller GKE Ingress.

Passaggi successivi