Problemas conhecidos do GKE

Nesta página, listamos os problemas conhecidos do GKE. Esta página é destinada a administradores e arquitetos que gerenciam o ciclo de vida da infraestrutura de tecnologia e respondem a alertas e páginas quando os objetivos de nível de serviço (SLOs) não são atendidos ou os aplicativos falham.

Esta página lista problemas conhecidos para todas as versões compatíveis e para as duas versões secundárias que precedem imediatamente a versão mais antiga no suporte estendido. Depois que uma versão chega ao fim do suporte estendido, todos os problemas N-2 são removidos. Por exemplo, quando a versão 1.30 atinge o fim do suporte estendido, os problemas conhecidos específicos das versões 1.28 e anteriores são removidos.

Se você faz parte do Programa para desenvolvedores do Google, salve esta página para receber notificações quando uma nota da versão relacionada a ela for publicada. Para saber mais, consulte Páginas salvas.

Para filtrar os problemas conhecidos por uma versão ou categoria do produto, selecione os filtros nos menus suspensos a seguir.

Selecione sua versão do GKE:

Selecione a categoria do seu problema:

Ou pesquise seu problema:

Categoria Versões identificadas Versões corrigidas Problema e solução alternativa
Operação Versões 1.33 anteriores à 1.33.4-gke.1036000 1.33.4-gke.1036000 e mais recente

Nível de desempenho incorreto para instâncias do Lustre provisionadas dinamicamente

Ao provisionar dinamicamente uma instância do Lustre, a criação da instância falha com um erro InvalidArgument para PerUnitStorageThroughput, independente do valor perUnitStorageThroughput especificado na solicitação da API.

Alternativa:

Faça upgrade do cluster do GKE para a versão 1.33.4-gke.1036000 ou mais recente. Se você estiver usando o canal estável, talvez uma versão mais recente ainda não esteja disponível. Nesse caso, selecione manualmente uma versão dos canais Regular ou Rápido que inclua a correção.

Operação
  • 1.32.3-gke.1099000 e mais recente
  • 1,33
1.33.3-gke.1266000 e mais recente

Erro de entrada/saída ao renomear ou mover arquivos usando o driver CSI do Cloud Storage FUSE

Ao usar uma versão afetada do driver CSI do Cloud Storage FUSE, renomear ou mover arquivos em buckets do Cloud Storage pode falhar com um erro de E/S.

Alternativa:

Adicione temporariamente uma definição de imagem sidecar específica ao manifesto do pod. Na seção spec.containers do manifesto do pod, adicione a seguinte definição de contêiner com a imagem: gcr.io/gke-release/gcs-fuse-csi-driver-sidecar-mounter:v1.8.9-gke.2.

    # Add the following block to use the fixed sidecar image
    - name: gke-gcsfuse-sidecar
      image: gcr.io/gke-release/gcs-fuse-csi-driver-sidecar-mounter:v1.8.9-gke.2
    

Para mais informações, consulte o manifesto do pod em Configurar uma imagem particular para o contêiner sidecar.

Depois de fazer upgrade do cluster para uma versão fixa do GKE ou mais recente, remova todo o bloco gke-gcsfuse-sidecar do manifesto. Depois de remover esse bloco, o GKE vai retomar a injeção e o gerenciamento automáticos da imagem sidecar correta para a versão atualizada do cluster.

Geração de registros e monitoramento Todas as versões A definir

Condição de disputa em DaemonSets gke-metrics-agent

Quando você adiciona o rótulo cloud.google.com/gke-metrics-agent-scaling-level a um pool de nós para aumentar manualmente a alocação de memória do DaemonSet gke-metrics-agent, ocorre uma condição de disputa no DaemonSet durante a criação de um novo nó. Essa condição de disputa resulta em reinicializações intermitentes e pode causar perda de métricas.

Esse problema ocorre porque há um atraso antes que o rótulo seja adicionado a um novo nó no pool de nós. Durante esse atraso, o DaemonSet cria um pod com a alocação de memória original nesse nó. Depois que o rótulo é aplicado, o DaemonSet cria um pod com a nova alocação de memória. O pod atual não é completamente excluído quando o pod atualizado é iniciado. Ambos os pods tentam se vincular ao mesmo número de porta.

Alternativa:

Depois de adicionar o rótulo cloud.google.com/gke-metrics-agent-scaling-level a um pool de nós, reinicie o DaemonSet gke-metrics-agent:

kubectl -n kube-system rollout restart daemonset gke-metrics-agent
Upgrades 1,33 1.33.2-gke.1043000

Limite de arquivos abertos reduzido com o containerd 2.0

Para pools de nós que executam a versão 1.33 do GKE, que usa o containerd 2.0, o limite flexível padrão para arquivos abertos (ulimit -n) para contêineres é reduzido para 1024.

Essa é uma mudança no próprio containerd (consulte PR do containerd nº 8924), em que LimitNOFILE foi removido de containerd.service como prática recomendada, fazendo com que o limite flexível padrão do sistema seja aplicado.

As cargas de trabalho que esperam um limite flexível padrão mais alto (por exemplo, aquelas que dependem implicitamente do padrão mais alto anterior) podem apresentar falhas, como erros Too many open files.

Solução:

Faça upgrade de uma versão de patch 1.33 anterior para a 1.33.2-gke.1043000 ou mais recente.

Alternativa:

Aumente o limite de arquivos abertos para suas cargas de trabalho usando um dos seguintes métodos:

  • Ajuste no nível do aplicativo:modifique o código ou a configuração do aplicativo para definir explicitamente o ulimit -n ou o prlimit --nofile=524288.
  • Plug-in de ajuste de ulimit do NRI do Containerd : use o plug-in containerd/nri ulimit-adjuster para ajustar o ulimit.
  • Fazer downgrade do pool de nós (somente Standard): para clusters do GKE Standard, é possível fazer downgrade temporariamente do pool de nós para a versão 1.32 e evitar esse problema até que uma solução permanente esteja disponível.
Para mais informações sobre a migração para o containerd 2, consulte Migrar nós para o containerd 2.
Upgrades 1.31.5-gke.1169000, 1.32.1-gke.1376000 1.31.7-gke.1164000, 1.32.3-gke.1512000

Status inválido "storedVersions" do CRD para CRDs gerenciados

Alguns CRDs gerenciados pelo GKE podem ter um campo status.storedVersions inválido, o que cria um risco de interrupção do acesso a objetos CRD após um upgrade.

Esse problema afeta clusters que são:

  • Clusters que usaram uma versão afetada do GKE em algum momento.
  • Clusters que tinham versões não compatíveis (served=false) de objetos CRD armazenados no etcd.

Alternativa:

A solução alternativa recomendada é atrasar os upgrades do cluster até que o problema seja resolvido.

Como alternativa, se você souber que o cluster contém versões sem suporte de objetos CRD, adicione essas versões ao campo status.storedVersions usando o comando kubectl patch.

Operação, geração de registros e monitoramento 1.32.2-gke.1652000, 1.31.6-gke.1221000, 1.30.10-gke.1227000
  • 1.32.2-gke.1652003 ou mais recente
  • 1.31.6-gke.1221001 ou mais recente
  • 1.30.10-gke.1227001 ou mais recente

Métricas ausentes ou escalonador automático de carga de trabalho que não está escalonando

É possível observar lacunas nos dados de métricas nas versões afetadas depois que o tamanho do cluster aumenta em mais de cinco nós. Esse problema também pode afetar as operações de escalonamento automático.

Esse problema afeta apenas os clusters atualizados para as versões afetadas. Os clusters recém-criados vão funcionar conforme o esperado.

Alternativa:

Se você for afetado, faça downgrade de uma versão de patch ou upgrade para as versões corrigidas mais recentes.

Operação

Limites de tamanho e anexos do Google Cloud Hyperdisk

Normalmente, um pod que não pode ser programado devido aos limites de vinculação de volume de um nó aciona o provisionamento automático de um novo nó. Quando cargas de trabalho que usam um produto Hyperdisk são programadas para um nó que executa uma VM C3, o provisionamento automático de nós não ocorre, e o pod é programado no nó já cheio.

A carga de trabalho é programada no nó, apesar da falta de uma conexão de disco disponível. A carga de trabalho também não é iniciada devido a um erro como este:

 AttachVolume.Attach failed for volume "[VOLUME NAME]" : rpc error: code = InvalidArgument desc = Failed to Attach: failed when waiting for zonal op: rpc error: code = InvalidArgument desc = operation operation-[OPERATION NUMBERS] failed (UNSUPPORTED_OPERATION): Maximum hyperdisk-balanced disks count should be less than or equal to [16], Requested : [17]

O problema está presente em todos os produtos Hyperdisk nas máquinas C3.

Os limites de anexação do Hyperdisk variam de acordo com o número de vCPUs da VM e o produto do Hyperdisk. Para mais informações, consulte Limites de desempenho do Hyperdisk.

Alternativa:

Os produtos do Hyperdisk acionam o provisionamento automático em outros formatos de VM. Recomendamos um formato que ofereça suporte apenas ao Hyperdisk.

Operação 1.32.3-gke.1927000, 1.32.3-gke.1785000, 1.32.3-gke.1717000, 1.32.3-gke.1440000, 1.32.3-gke.1170000, 1.32.3-gke.1250000, 1.32.3-gke.1671000, 1.32.3-gke.1596000, 1.32.3-gke.1298000

O gke-metadata-server é OOMKilled em nós de TPU/GPU

Em nós de TPU (por exemplo, ct4p-hightpu-4t) e GPU (por exemplo, a3-highgpu-8g) do GKE, o kernel pode encerrar o gke-metadata-server com um OOMKilled quando o uso de memória do servidor excede 100 MB.

Alternativa:

Se você observar eventos OOMKilled para gke-metadata-server em nós de TPU ou GPU, entre em contato com a equipe de plantão de identidade do GKE (ID do componente: 395450) para saber as opções de mitigação.

Operação
  • 1.32.0-gke.1358000 a 1.32.4-gke.1106006, 1.32.4-gke.1236007, 1.32.4-gke.1353001, 1.32.4-gke.1415001, 1.32.4-gke.1533000
  • 1.33.0-gke.0 a 1.33.0-gke.1552000
  • 1.32.4-gke.1353003 e mais recente
  • 1.33.0-gke.1552000 e mais recente

O redimensionamento de volumes pode ficar travado devido ao status NodePendingResize pendente em PVCs.

Os clusters na versão 1.32 que têm nós nas versões 1.31 ou anteriores não vão atualizar o status do PersistentVolumeClaim durante o redimensionamento. Esse status incorreto impede que as operações de redimensionamento subsequentes sejam iniciadas, evitando outros redimensionamentos.

Um PVC nesse estado tem um campo status.allocatedResourceStatuses que contém NodePendingResize ou os campos status.allocatedResources e status.conditions.type: FileSystemResizePending.

Se um PVC foi criado enquanto o cluster estava em uma versão afetada, esse problema poderá persistir depois que o cluster for atualizado para uma versão fixa conhecida. Nesse cenário, o PVC precisa ser corrigido para remover o campo status.allocatedResources com uma solução alternativa única.

Alternativa:

As PVCs presas devido a um status pendente podem ser corrigidas para remover esse status. Você pode usar um comando patch como o seguinte para remover o status pendente:

kubectl patch pvc $PVC_NAME --subresource='status' --type='merge' -p '{"status":{"allocatedResourceStatuses":null}}'
kubectl patch pvc $PVC_NAME --subresource='status' --type='merge' -p '{"status":{"allocatedResources":null}}'
Operação
  • 1.32.4-gke.1236007, 1.32.4-gke.1353001
  • 1.32.4-gke.1353003 e mais recente

O driver PDCSI pode registrar em excesso

Os clusters do GKE em versões específicas do 1.32 podem emitir mensagens de registro excessivas do driver PDCSI. Esse excesso de geração de registros consumiria a cota da API Cloud Logging Write.

Alternativa:

Para reduzir esse registro excessivo, adicione um filtro de exclusão. Para impedir que as mensagens de registro sejam processadas pelo Cloud Logging, use a seguinte consulta:

      resource.type="k8s_container"
      resource.labels.container_name="gce-pd-driver"
      (sourceLocation.file="cache.go" OR "Cannot process volume group")
    
Operações
  • 1.27.16-gke.2440000 e mais recente
  • 1.28.15-gke.1673000 e mais recente
  • 1.29.13-gke.1038000 e mais recente
  • 1.30.9 e versões mais recentes
  • 1.31.7 e versões mais recentes
  • 1.32.1-gke.1357001 e mais recente
  • 1.27.16-gke.2691000 e mais recente
  • 1.28.15-gke.2152000 e mais recente
  • 1.29.15-gke.1218000 e mais recente
  • 1.30.11-gke.1190000 e mais recente
  • 1.31.7-gke.1363000 e mais recente
  • 1.32.4-gke.1106000 e mais recente
  • 1.33.0-gke.1552000 e mais recente

Os pods que tentarem montar volumes permanentes do NFS em nós do COS que já tinham uma montagem somente leitura (RO) serão montados apenas no modo RO.

Para o GKE versão 1.27 e mais recente, os volumes NFS que usam o driver CSI em árvore do Kubernetes só podem montar volumes permanentes no modo RO após uma montagem RO anterior no mesmo nó.

Alternativa:

Faça downgrade dos pools de nós para uma versão anterior às afetadas.

Operações
  • Versões 1.32 de 1.32.1-gke.1357001 até 1.32.4-gke.1106000, mas sem incluir esta última
  • Todas as versões 1.33 anteriores a 1.33.0-gke.1552000
  • Versão 1.32: 1.32.4-gke.1106000 e mais recente
  • Versão 1.33: 1.33.0-gke.1552000 e mais recente

Os pods que tentarem montar volumes permanentes do NFS em nós do Ubuntu não poderão ser executados.

Para volumes NFS do GKE versão 1.32 e mais recentes que usam o driver CSI em árvore do Kubernetes, não será possível montar volumes permanentes em nós do Ubuntu. Quando isso acontece, você pode ver as seguintes mensagens de erro:

"MountVolume.SetUp failed for volume 'nfs-storage' : mount failed: exit status 1"
Output: Mount failed: mount failed: exit status 127
"Output: chroot: failed to run command 'mount': No such file or directory failed to run command mount on Ubuntu nodes"
Além de ver essas mensagens de erro, os pods que usam esses volumes não poderão ser iniciados.

Alternativa:

Faça downgrade dos pools de nós para a versão 1.31.

Operação >= 1.28.15-gke.1436000, < 1.28.15-gke.1668000, >= 1.29.12-gke.1040000, < 1.29.13-gke.1028000, >= 1.30.8-gke.1053000, < 1.30.8-gke.1287000, >= 1.31.4-gke.1057000, < 1.31.6-gke.1020000, >= 1.32.0-gke.1281000, < 1.32.1-gke.1302000
  • 1.28.15-gke.1668000 ou mais recente
  • 1.29.13-gke.1028000 ou mais recente
  • 1.30.8-gke.1287000 ou mais recente
  • 1.31.6-gke.1020000 ou mais recente
  • 1.32.1-gke.1302000 ou mais recente

Os pods que usam syscalls relacionados a io_uring podem entrar no estado D (suspensão do disco), também chamado de TASK_UNINTERRUPTIBLE, devido a um bug no kernel do Linux. Os processos no estado D não podem ser ativados por sinais, incluindo SIGKILL.

Quando um pod é afetado por esse problema conhecido, os contêineres dele podem não ser encerrados normalmente. Nos registros do containerd, você pode observar mensagens repetidas semelhantes a esta: Kill container [container-id], indicando que o sistema está tentando parar um contêiner repetidamente.
Ao mesmo tempo, os registros do kubelet mostram mensagens de erro, como estas:

"Kill container failed" err="rpc error: code = DeadlineExceeded desc = context deadline exceeded"

ou

"Error syncing pod, skipping" err="[failed to \"KillContainer\" for \"container-name\" with KillContainerError: \"rpc error: code = DeadlineExceeded desc = an error occurs during waiting for container \\\"container-id\\\" to be killed: wait container \\\"container-id\\\": context deadline exceeded\", failed to \"KillPodSandbox\" for \"pod-uuid\" with KillPodSandboxError: \"rpc error: code = DeadlineExceeded desc = context deadline exceeded\"]" pod="pod-name" podUID="pod-uuid"

Esses sintomas apontam para processos dentro do contêiner que estão presos em um estado de suspensão ininterrupta (D), o que impede o encerramento adequado do pod.

As cargas de trabalho que usam io_uring diretamente ou indiretamente por um ambiente de execução de linguagem, como o NodeJS, podem ser afetadas por esse problema conhecido. As cargas de trabalho afetadas têm um processo no estado D (suspensão do disco) no arquivo /proc/<pid>/state e mostram a string io_uring como parte do conteúdo de /proc/<pid>/stack. As cargas de trabalho do NodeJS podem desativar o uso de io_uring com UV_USE_IO_URING=0.

Alternativa:

Faça upgrade dos nós do cluster para uma versão corrigida ou mais recente.

Operação 1.28, 1.29, 1.30, 1.31
  • 1.30.8-gke.1261000 e mais recente
  • 1.31.4-gke.1183000 e mais recente
  • 1.32.0-gke.1448000 e mais recente

As cargas de trabalho que usam o streaming de imagens falham com erros de autenticação

Um bug no recurso de streaming de imagens pode causar falhas nas cargas de trabalho quando um conjunto de condições específicas é atendido enquanto o contêiner lê arquivos. As mensagens de erro relacionadas a falhas de autenticação podem aparecer no registro do gcfsd.

Para verificar se você foi afetado, pesquise os registros com esta consulta: resource.type="k8s_node" resource.labels.project_id="[project_id]" resource.labels.cluster_name="[cluster_name]" logName="projects/[project_id]/logs/gcfsd" "backend.FileContent failed" "Request is missing required authentication credential."

A presença desses erros indica que os nós foram afetados.

Se você for afetado por esse problema, faça upgrade dos pools de nós para uma versão corrigida do GKE.

Operação
  • 1.30.0 a 1.30.5-gke.1443001
  • 1.31.0 a 1.31.1-gke.1678000
  • 1.30.5-gke.1628000 e mais recente
  • 1.31.1-gke.1846000 e mais recente

Aumento das taxas de remoção de pods nas versões 1.30 e 1.31 do GKE

Algumas versões do GKE 1.30 e do GKE 1.31 que usam o COS 113 e o COS 117, respectivamente, têm kernels criados com a opção CONFIG_LRU_GEN_ENABLED=y. Essa opção ativa o recurso do kernel LRU multigeração, que faz com que o kubelet calcule incorretamente o uso da memória e pode levar à remoção de pods pelo kubelet.

A opção de configuração CONFIG_LRU_GEN_ENABLED está desativada em cos-113-18244-151-96 e cos-117-18613-0-76.

Talvez você nem sempre veja uma taxa de remoção de pods incomum porque esse problema depende do padrão de uso de memória da carga de trabalho. Há um risco maior de o kubelet desalojar pods para cargas de trabalho que não definiram um limite de memória no campo de recursos. Isso acontece porque as cargas de trabalho podem solicitar mais memória do que o kubelet informa como disponível.

Se você notar um uso maior de memória de um aplicativo após o upgrade para as versões do GKE mencionadas sem outras mudanças, talvez você esteja sendo afetado pela opção do kernel.

Para verificar se há taxas de remoção de pods incomuns, analise as seguintes métricas com o Metrics Explorer: kubernetes.io/container_memory_used_bytes e kubernetes.io/container_memory_request_bytes.

É possível usar as seguintes consultas em PromQL. Substitua os valores de cluster_name, namespace_name, metadata_system_top_level_controller_type e metadata_system_top_level_controller_name pelo nome e tipo da carga de trabalho que você quer analisar:

max by (pod_name)(max_over_time(kubernetes_io:container_memory_used_bytes{monitored_resource="k8s_container",memory_type="non-evictable",cluster_name="REPLACE_cluster_name",namespace_name="REPLACE_namespace",metadata_system_top_level_controller_type="REPLACE_controller_type",metadata_system_top_level_controller_name="REPLACE_controller_name"}[${__interval}]))

sum by (pod_name)(avg_over_time(kubernetes_io:container_memory_request_bytes{monitored_resource="k8s_container",cluster_name="REPLACE_cluster_name",namespace_name="REPLACE_namespace",metadata_system_top_level_controller_type="REPLACE_controller_type",metadata_system_top_level_controller_name="REPLACE_controller_name"}[${__interval}]))

Se você notar picos incomuns no uso de memória que excedem a memória solicitada, talvez a carga de trabalho esteja sendo despejada com mais frequência.

Alternativa

Se não for possível fazer upgrade para as versões corrigidas e você estiver executando em um ambiente do GKE em que é possível implantar pods privilegiados, desative a opção LRU multigeração usando um DaemonSet.

  1. Atualize os pools de nós do GKE de onde você quer executar o DaemonSet com uma anotação para desativar a opção LRU multigeração. Por exemplo, disable-mglru: "true"
  2. Atualize o parâmetro nodeSelector no manifesto do DaemonSet com a mesma anotação usada na etapa anterior. Por exemplo, consulte o arquivo disable-mglru.yaml no repositório GoogleCloudPlatform/k8s-node-tools.
  3. Implante o DaemonSet no cluster.

Depois que o DaemonSet estiver em execução em todos os pools de nós selecionados, a mudança vai entrar em vigor imediatamente, e o cálculo do uso de memória do kubelet voltará ao normal.

Operação 1.28, 1.29, 1.30, 1.31
  • 1.28.14-gke.1175000 e mais recente
  • 1.29.9-gke.1341000 e mais recente
  • 1.30.5-gke.1355000 e mais recente
  • 1.31.1-gke.1621000 e mais recente

Pods travados no status de encerramento

Um bug no ambiente de execução do contêiner (containerd) pode fazer com que pods e contêineres fiquem presos no status "Encerrando" com erros semelhantes aos seguintes:

OCI runtime exec failed: exec failed: cannot exec in a stopped container: unknown

Se você for afetado por esse problema, faça upgrade dos nós para uma versão do GKE com uma versão corrigida do containerd.

Operação 1.28,1.29
  • 1.28.9-gke.1103000 e mais recente
  • 1.29.4-gke.1202000 e mais recente
  • 1.30: todas as versões

Um bug no recurso de streaming de imagens pode fazer com que os contêineres não iniciem.

Os contêineres executados em um nó com o streaming de imagens ativado em versões específicas do GKE podem não ser criados com o seguinte erro:

"CreateContainer in sandbox from runtime service failed" err="rpc error: code = Unknown desc = failed to create containerd container: failed to mount [PATH]: too many levels of symbolic links"

Se você foi afetado por esse problema, verifique se há camadas vazias ou duplicadas. Se não for possível remover camadas vazias ou duplicadas, desative o streaming de imagens.

Operação 1.27,1.28,1.29
  • 1.28.9-gke.1103000 e mais recente
  • 1.29.4-gke.1202000 e mais recente
  • 1.30: todas as versões

O streaming de imagens falha devido à falta de arquivos

Um bug no recurso de streaming de imagens pode fazer com que os contêineres falhem devido a um ou mais arquivos ausentes.

Os contêineres executados em um nó com o streaming de imagens ativado nas seguintes versões podem não iniciar ou apresentar erros informando que determinados arquivos não existem. Confira alguns exemplos desses erros:

  • No such file or directory
  • Executable file not found in $PATH

Se você for afetado por esse problema, desative o streaming de imagens.

Rede,upgrades e atualizações 1.28

Erro de configuração do TLS do gateway

Identificamos um problema na configuração do TLS para gateways em clusters que executam a versão 1.28.4-gke.1083000 do GKE. Isso afeta as configurações de TLS que usam um SSLCertificate ou um CertificateMap. Se você estiver fazendo upgrade de um cluster com gateways atuais, as atualizações feitas no gateway vão falhar. Para novos gateways, os balanceadores de carga não serão provisionados. Esse problema será corrigido em uma futura versão de patch do GKE 1.28.

Upgrades e atualizações 1,27 1.27.8 ou mais recente

Problema com o plug-in do dispositivo GPU

Os clusters que executam GPUs e são atualizados da versão 1.26 para uma versão de patch 1.27 anterior a 1.27.8 podem ter problemas com os plug-ins de dispositivo de GPU (nvidia-gpu-device-plugin) dos nós. Siga estas etapas dependendo do estado do cluster:

  • Se o cluster estiver executando a versão 1.26 e tiver GPUs, não faça upgrade manual até que a versão 1.27.8 esteja disponível no canal de lançamento do cluster.
  • Se o cluster estiver executando uma versão de patch 1.27 anterior e os nós forem afetados, reinicie os nós ou exclua manualmente o pod nvidia-gpu-device-plugin nos nós (o gerenciador de complementos vai criar um novo plug-in funcional).
  • Se o cluster estiver usando upgrades automáticos, isso não vai afetar você, já que os upgrades automáticos só movem os clusters para versões de patch com a correção.
Operação 1.27,1.28
  • 1.27.5-gke.1300 e mais recente
  • 1.28.1-gke.1400 e mais recente

O escalonamento automático de todas as cargas de trabalho é interrompido

O HorizontalPodAutoscaler (HPA) e o VerticalPodAutoscaler (VPA) podem interromper o escalonamento automático de todas as cargas de trabalho em um cluster se ele contiver objetos autoscaling/v2 HPA mal configurados. O problema afeta clusters que executam versões de patch anteriores das versões 1.27 e 1.28 do GKE (por exemplo, 1.27.3-gke.100).

Alternativa:

Corrija objetos HPA autoscaling/v2 mal configurados verificando se os campos em spec.metrics.resource.target correspondem. Por exemplo:

  • Quando spec.metrics.resource.target.type é Utilization, a segmentação precisa ser averageUtilization
  • Quando spec.metrics.resource.target.type é AverageValue, a segmentação precisa ser averageValue

Para mais detalhes sobre como configurar objetos HPA do autoscaling/v2, consulte a documentação do Kubernetes sobre HorizontalPodAutoscaler.

Operação 1.28,1.29
  • 1.28.7-gke.1026000
  • 1.29.2-gke.1060000

Falha na implantação do Container Threat Detection

O Container Threat Detection pode não ser implantado em clusters do Autopilot que executam as seguintes versões do GKE:

  • 1.28.6-gke.1095000 a 1.28.7-gke.1025000
  • 1.29.1-gke.1016000 a 1.29.1-gke.1781000
Rede, upgrades 1.27, 1.28, 1.29, 1.30
  • 1.30.4-gke.1282000 ou mais recente
  • 1.29.8-gke.1157000 ou mais recente
  • 1.28.13-gke.1078000 ou mais recente
  • 1.27.16-gke.1342000 ou mais recente

Problemas de conectividade para pods hostPort após o upgrade do plano de controle

Clusters com a política de rede ativada podem ter problemas de conectividade com pods hostPort. Além disso, os pods recém-criados podem levar mais 30 a 60 segundos para ficar prontos.

O problema é acionado quando o plano de controle do GKE de um cluster é atualizado para uma das seguintes versões do GKE:

  • 1.30 a 1.30.4-gke.1281999
  • 1.29.1-gke.1545000 a 1.29.8-gke.1156999
  • 1.28.7-gke.1042000 a 1.28.13-gke.1077999
  • 1.27.12-gke.1107000 a 1.27.16-gke.1341999

Alternativa:

Faça upgrade ou recrie os nós imediatamente após o upgrade do plano de controle do GKE.

Rede 1.31, 1.32
  • 1.32.1-gke.1729000 ou mais recente
  • 1.31.6-gke.1020000 ou mais recente

Tráfego UDP corrompido entre pods executados no mesmo nó

Clusters com a visibilidade intranós ativada podem ter problemas com o tráfego UDP entre pods que são executados no mesmo nó.

O problema é acionado quando o nó do cluster do GKE é atualizado ou criado com uma das seguintes versões do GKE:

  • 1.32.1-gke.1729000 ou mais recente
  • 1.31.6-gke.1020000 ou mais recente

O caminho afetado é o tráfego UDP entre pods no mesmo nó por Hostport ou Service.

Resolução

Faça upgrade do cluster para uma das seguintes versões corrigidas:

  • 1.32.3-gke.1927000 ou mais recente
  • 1.31.7-gke.1390000 ou mais recente
Operação 1.29,1.30,1.31
  • 1.29.10-gke.1071000 ou mais recente
  • 1.30.5-gke.1723000 ou mais recente
  • 1.31.2-gke.1115000 ou mais recente

Operador do Ray e criptografia de banco de dados do Cloud KMS incompatíveis

Algumas versões do operador do Ray são incompatíveis com a criptografia de banco de dados do Cloud KMS.

Alternativas:

Faça upgrade do plano de controle do cluster para uma versão corrigida ou mais recente.

Upgrades e atualizações 1.30, 1.31
  • 1.30.8-gke.1051000 ou mais recente
  • 1.31.1-gke.2008000 e mais recente

Pod do gerenciador de manutenção de GPU travado no estado CrashLoopBackOff

Com esse problema, os pods gpu-maintenance-handler ficam presos em um estado "CrashLoopBackOff" nos respectivos nós. Esse estado impede que o rótulo "próxima manutenção" seja aplicado aos nós do GKE, o que pode afetar os processos de drenagem de nós e remoção de pods para cargas de trabalho.

"Node upcoming maintenance label not applied due to error: Node "gke-yyy-yyy" is invalid: metadata.labels: Invalid value: "-62135596800": a valid label must be an empty string or consist of alphanumeric characters, '-','' or '.', and must start and end with an alphanumeric character (e.g.'MyValue', or 'my_value', or '12345', regex used for validation is '(([A-Za-z0-9][-A-Za-z0-9.]*)?[A-Za-z0-9])?')"

Se você for afetado por esse problema, faça upgrade do plano de controle para uma versão do GKE que inclua a correção.

Operação 1.33.1-gke.1522000 e mais recente 1.33.4-gke.1142000 e mais recente

Falha ao iniciar pods em nós com o streaming de imagens ativado

Em nós com o streaming de imagens ativado, as cargas de trabalho podem não iniciar com a seguinte assinatura de erro: Failed to create pod sandbox ... context deadline exceeded

Os registros da porta serial de um nó afetado também contêm a seguinte assinatura de erro: task gcfsd ... blocked for more than X seconds

A presença dessas duas assinaturas de erro indica um deadlock em um dos componentes de streaming de imagens. Esse deadlock impede que os pods sejam iniciados.

Mitigação:

Reinicie o nó para uma mitigação rápida. O nó reiniciado ainda pode encontrar o deadlock novamente. Para uma mitigação mais robusta, desative o streaming de imagens no pool de nós executando o seguinte:

gcloud container node-pools update NODE_POOL_NAME --cluster CLUSTER_NAME --no-enable-image-streaming
Observação: desativar o streaming de imagem recria todos os nós em um pool de nós.

A seguir

  • Se você não encontrar uma solução para seu problema na documentação, consulte Receber suporte para mais ajuda, incluindo conselhos sobre os seguintes tópicos: