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:
- 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
. - Configurare una classe Ingress predefinita
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
- Scopri di più sul bilanciamento del carico in Google Cloud.
- Scopri come configurare Ingress per i bilanciatori del carico delle applicazioni interni.
- Scopri come configurare Ingress per i bilanciatori del carico delle applicazioni esterni.
- Implementa GKE Ingress utilizzando NGINX Ingress.