Utilizzo di un controller Ingress personalizzato

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

In questa pagina viene spiegato come utilizzare un controller Ingress personalizzato con Google Kubernetes Engine (GKE).

Utilizza 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. Ciò impedisce al controller Ingress di GKE di elaborare le risorse Ingress.

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

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

Configura il campo ingressClassName

Puoi utilizzare un controller Ingress personalizzato impostando il campo ingressClassName nel manifest Ingress. Il manifest seguente descrive una risorsa 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 1.18-1.21 e 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 1.19 e versioni successive.

Riepilogo del comportamento del controller Ingress GKE

Per i cluster che eseguono GKE 1.18 e versioni successive, se il controller GKE Ingress elabora 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 Comportamento del controller Ingress Ingress.

Passaggi successivi