Utilizzo di un controller Ingress personalizzato


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

Utilizzare un controller Ingress personalizzato con il componente aggiuntivo HttpLoadBalancing attivato

Puoi eseguire un controller Ingress personalizzato, ad esempio nginx-ingress, disattivando il componente aggiuntivo HttpLoadBalancing. In questo modo, il controller Ingress GKE non elabora le risorse Ingress.

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

Devi assicurarti che spec.ingressClassName non venga sovrascritto accidentalmente da nessun processo. Un'operazione di aggiornamento che modifica spec.IngressClassName da un valore valido a una stringa vuota ("") fa sì che il controller GKE Ingress elabori l'oggetto Ingress.

Configurare 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 nginx controller Ingress:

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.

Configurare 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 versione 1.19 e successive.

Riepilogo del comportamento del controller Ingress GKE

Per i cluster che eseguono GKE 1.18 e versioni successive, l'elaborazione di un Ingress da parte del controller Ingress GKE dipende dal valore dell'annotazione kubernetes.io/ingress.class e dal campo ingressClassName nel manifest Ingress. Per maggiori informazioni, consulta Comportamento del controller Ingress di GKE.

Passaggi successivi