Use um controlador Ingress personalizado


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

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?