Esta página descreve como pode usar um controlador de entrada personalizado com o Google Kubernetes Engine (GKE).
Use um controlador Ingress personalizado com o suplemento HttpLoadBalancing
ativado
Pode executar um controlador Ingress personalizado, como o nginx-ingress
, desativando o suplemento HttpLoadBalancing
. Isto impede que o controlador GKE Ingress processe recursos Ingress.
Se quiser executar um controlador Ingress personalizado com o suplemento ativado, por exemplo, para usar funcionalidades como a
divisão em subconjuntos
e o
Private Service Connect,
pode usar uma das seguintes abordagens:HttpLoadBalancing
- No manifesto de entrada, defina a anotação
kubernetes.io/ingress.class
. Esta configuração é suportada para clusters que executam todas as versões do GKE. - Configure o campo
ingressClassName
. - Configure uma classe Ingress predefinida
Tem de garantir que spec.ingressClassName
não é substituído acidentalmente por nenhum processo. Uma operação de atualização que altera spec.IngressClassName
de um valor válido para uma string vazia (""
) faz com que o controlador do GKE Ingress processe o Ingress.
Configure o campo ingressClassName
Pode usar um controlador Ingress personalizado definindo o campo ingressClassName
no manifesto Ingress. O manifesto seguinte descreve um Ingress que
especifica o
nginx
controlador 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
Esta configuração é suportada com a API Ingress v1beta1
nas versões 1.18 a 1.21 do GKE e a API Ingress v1
nas versões 1.19 e posteriores do GKE.
Configure uma classe de entrada predefinida
Pode configurar uma classe Ingress predefinida para todos os recursos Ingress num cluster criando um recurso IngressClass
com a anotação ingressclass.kubernetes.io/is-default-class
definida como 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
Esta configuração está disponível para clusters com versões do GKE 1.19 e posteriores.
Resumo do comportamento do controlador de entrada do GKE
Para clusters que executam as versões 1.18 e posteriores do GKE, o facto de o controlador de entrada do GKE processar ou não uma entrada depende do valor da anotação kubernetes.io/ingress.class
e do campo ingressClassName
no manifesto de entrada. Para mais informações, consulte o artigo
Comportamento do controlador de entrada do GKE.
O que se segue?
- Saiba mais sobre o equilíbrio de carga no Google Cloud.
- Saiba como configurar o Ingress para equilibradores de carga de aplicações internos.
- Saiba como configurar o Ingress para equilibradores de carga de aplicações externos.
- Implemente o GKE Ingress com o NGNIX Ingress.