Questa pagina descrive come utilizzare un controller Ingress personalizzato con Google Kubernetes Engine (GKE).
Utilizza 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:
- Nel manifest di 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 per errore da alcuna procedura. 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'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
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 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, 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.