Utilizzo di un controller Ingress personalizzato


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

Utilizzare un controller Ingress personalizzato con il componente aggiuntivo HttpLoadBalancing abilitato

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

Se vuoi eseguire un controller Ingress personalizzato con il plug-in HttpLoadBalancing attivo, 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 in qualsiasi processo. Un'operazione di aggiornamento che modifica spec.IngressClassName da un valore valido a una stringa vuota ("") fa sì che GKE Ingress per elaborare l'oggetto Ingress.

Configura il campo ingressClassName

Puoi utilizzare un controller Ingress personalizzato impostando il ingressClassName campo nel manifest Ingress. Il manifest seguente 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 in GKE dalla 1.18 alla 1.21 e l'API Ingress v1 in GKE 1.19 e versioni successive.

Configurare una classe Ingress predefinita

Puoi configurare un'entità 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 versioni 1.19 e successive.

Riepilogo del comportamento del controller GKE Ingress

Per i cluster che eseguono GKE 1.18 e versioni successive, il fatto che il controller Ingress di GKE elabori o meno un Ingress dipende dal valore dell'annotazione kubernetes.io/ingress.class e del campo ingressClassName nel manifest di Ingress. Per ulteriori informazioni, vedi Comportamento del controller Ingress GKE.

Passaggi successivi