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:
- Nel manifest Ingress, imposta l'annotazione
kubernetes.io/ingress.class
. Questa configurazione è supportata per i cluster che eseguono tutte le versioni di GKE. - Configura il campo
ingressClassName
. - Configura una classe Ingress predefinita
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
- Scopri di più sul bilanciamento del carico in Google Cloud.
- Scopri come configurare Ingress per gli Application Load Balancer interni.
- Scopri come configurare Ingress per bilanciatori del carico delle applicazioni esterni.
- Implementa GKE Ingress con NGNIX Ingress.