Esta página mostra-lhe como resolver problemas relacionados com a entrada no Google Kubernetes Engine (GKE).
Se precisar de assistência adicional, contacte o apoio ao cliente do Google Cloud.
Anotação incorreta para a classe Ingress
Sintoma
Quando cria um Ingress, pode ver o seguinte erro:
Missing one or more resources. If resource creation takes longer than expected, you might have an invalid configuration.
Potenciais causas
Quando criou o Ingress, pode ter configurado incorretamente a classe Ingress no manifesto.
Resolução
Para especificar uma classe Ingress, tem de usar a anotação kubernetes.io/ingress.class
. Não pode especificar um GKE Ingress com spec.ingressClassName
.
- Para implementar um Application Load Balancer interno, use a anotação
kubernetes.io/ingress.class: gce-internal
. - Para implementar um Application Load Balancer externo, use a anotação
kubernetes.io/ingress.class: gce
.
A anotação do endereço IP estático está incorreta
Sintoma
Quando configura um Ingress externo para usar um endereço IP estático, pode ver o seguinte erro:
Error syncing to GCP: error running load balancer syncing routine: loadbalancer <Name of load balancer> does not exist: the given static IP name <Static IP> doesn't translate to an existing static IP.
Potenciais causas
- Não criou um endereço IP externo estático antes de implementar o Ingress.
- Não está a usar a anotação correta para o seu tipo de equilibrador de carga.
Resolução
Se estiver a configurar uma entrada externa:
- Reserve um endereço IP externo estático antes de implementar o Ingress.
- Use a anotação
kubernetes.io/ingress.global-static-ip-name
no seu recurso Ingress.
Se estiver a configurar um Ingress interno:
- Reserve um endereço IP interno estático regional antes de implementar o Ingress.
- Use a anotação
kubernetes.io/ingress.regional-static-ip-name
no seu recurso Ingress.
O endereço IP estático já está a ser usado
Sintoma
Pode ver o seguinte erro quando especifica um endereço IP estático para aprovisionar o seu recurso Ingress interno ou externo:
Error syncing to GCP: error running load balancer syncing
routine: loadbalancer <LB name> does not exist:
googleapi: Error 409: IP_IN_USE_BY_ANOTHER_RESOURCE - IP ''<IP address>'' is already being used by another resource.
Potenciais causas
O endereço IP estático já está a ser usado por outro recurso.
Erro ao desativar o HTTP e usar um certificado gerido pela Google
Sintoma
Se estiver a configurar um certificado SSL gerido pela Google e a desativar o tráfego HTTP no seu Ingress, é apresentado o seguinte erro:
Error syncing to GCP: error running load balancer syncing
routine: loadbalancer <Load Balancer name> does not exist:
googleapi: Error 404: The resource ''projects/<Project>/global/sslPolicies/<Policy name>' was not found, notFound
Potenciais causas
Não pode usar as seguintes anotações em conjunto quando configura o Ingress:
networking.gke.io/managed-certificates
(para associar o certificado gerido pela Google a um Ingress)kubernetes.io/ingress.allow-http: false
(para desativar o tráfego HTTP)
Resolução
Desative o tráfego HTTP apenas depois de o balanceador de carga da aplicação externo estar totalmente programado. Pode atualizar o Ingress e adicionar a anotação kubernetes.io/ingress.allow-http: false
ao manifesto.
Falta a sub-rede só de proxy para um Ingress interno
Sintoma
Quando implementa um Ingress para um Application Load Balancer interno, pode ver o seguinte erro:
Error syncing to GCP: error running load balancer syncing routine:
loadbalancer <LB name> does not exist: googleapi: Error 400: Invalid value for field 'resource.target': 'https://www.googleapis.com/compute/v1/projects/<Project ID>/regions/<Region>/targetHttpsProxies/<Target proxy>'.
An active proxy-only subnetwork is required in the same region and VPC as
the forwarding rule.
Potenciais causas
Não criou uma sub-rede apenas de proxy antes de criar o recurso Ingress. É necessária uma sub-rede apenas de proxy para equilibradores de carga de aplicações internos.
Resolução
Crie uma sub-rede apenas de proxy antes de implementar o Ingress interno.
A chave do certificado SSL é demasiado grande
Sintoma
Se o tamanho da chave do certificado SSL do balanceador de carga for demasiado grande, pode ver o seguinte erro:
Error syncing to GCP: error running load balancer syncing routine: loadbalancer gky76k70-load-test-trillian-api-ingress-fliismmb does not exist: Cert creation failures - k8s2-cr-gky76k70-znz6o1pfu3tfrguy-f9be3a4abbe573f7 Error:googleapi: Error 400: The SSL key is too large., sslCertificateKeyTooLarge
Potenciais causas
Google Cloud tem um limite de 2048 bits para chaves de certificados SSL.
Resolução
Reduza o tamanho da chave do certificado SSL para 2048 bits ou menos.
Erro ao criar um Ingress no nível Standard
Sintoma
Se estiver a implementar um Ingress num projeto com o nível de rede predefinido do projeto definido como Standard, é apresentada a seguinte mensagem de erro:
Error syncing to GCP: error running load balancer syncing routine: load balancer <LB Name> does not exist: googleapi: Error 400: STANDARD network tier (the project''s default network tier) is not supported: STANDARD network tier is not supported for global forwarding rule., badRequest
Resolução
Configure o nível de rede predefinido do projeto como Premium.
O que se segue?
Se não conseguir encontrar uma solução para o seu problema na documentação, consulte a secção Obtenha apoio técnico para receber mais ajuda, incluindo aconselhamento sobre os seguintes tópicos:
- Abrindo um registo de apoio ao cliente através do contacto com o Cloud Customer Care.
- Receber apoio técnico da comunidade fazendo perguntas no StackOverflow e usando a etiqueta
google-kubernetes-engine
para pesquisar problemas semelhantes. Também pode juntar-se ao#kubernetes-engine
canal do Slack para receber mais apoio técnico da comunidade. - Abrir erros ou pedidos de funcionalidades através do rastreador de problemas público.