Revisão das notas de release das versões do Kubernetes com suporte estendido - Amazon EKS

Ajudar a melhorar esta página

Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.

Revisão das notas de release das versões do Kubernetes com suporte estendido

O Amazon EKS é compatível com as versões do Kubernetes por mais tempo do que as versões upstream, com suporte padrão para as versões secundárias do Kubernetes por 14 meses a partir do lançamento no Amazon EKS, e suporte estendido para as versões secundárias do Kubernetes por mais 12 meses de suporte (26 meses no total por versão).

Este tópico fornece mudanças importantes que você deve conhecer em cada Kubernetes versão do suporte estendido. Ao fazer o upgrade, analise cuidadosamente as alterações que ocorreram entre a versão antiga e a nova do seu cluster.

Kubernetes 1.29

O Kubernetes 1.29 agora está disponível no Amazon EKS. Para obter mais informações sobre o Kubernetes 1.29, consulte o anúncio oficial de lançamento.

Importante
  • A versão obsoleta da API flowcontrol.apiserver.k8s.io/v1beta2 de FlowSchema e PriorityLevelConfiguration não é mais fornecida na versão 1.29 do Kubernetes. Se você tiver manifestos ou software-cliente que usa o grupo de API beta obsoleto, altere-os antes de fazer o upgrade para a versão 1.29.

  • O campo .status.kubeProxyVersion para objetos de nó agora está obsoleto, e o projeto do Kubernetes está sugerindo remover esse campo em uma versão futura. O campo obsoleto não é preciso e historicamente foi gerenciado por kubelet que, na verdade, não conhece a versão kube-proxy ou mesmo se kube-proxy está em execução. Se você estiver usando este campo no software cliente, pare. As informações não são confiáveis e o campo agora está obsoleto.

  • No Kubernetes 1.29, para reduzir a potencial superfície de ataque, o recurso LegacyServiceAccountTokenCleanUp rotulará os tokens legados baseados em segredos gerados automaticamente como inválidos se não forem usados por um longo período (um ano, por padrão), e os removerá automaticamente se não houver uma tentativa de uso por um longo período após serem marcados como inválidos (um ano adicional, por padrão). Para identificar esses tokens, você pode executar:

    kubectl get cm kube-apiserver-legacy-service-account-token-tracking -n kube-system

Para ver o changelog completo do Kubernetes 1.29, consulte https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md#changelog-since-v1280.

Kubernetes 1.28

O Kubernetes 1.28 agora está disponível no Amazon EKS. Para obter mais informações sobre o Kubernetes 1.28, consulte o anúncio oficial de lançamento.

  • O Kubernetes v1.28 expandiu a distorção suportada entre o nó central e os componentes do ambiente de gerenciamento em uma versão secundária, de n-2 para n-3, para que os componentes de nós (kubelet e kube-proxy) da versão secundária compatível mais antiga possam funcionar com os componentes do ambiente de gerenciamento (kube-apiserver, kube-scheduler, kube-controller-manager, cloud-controller-manager) para a versão secundária compatível mais recente.

  • As métricas force_delete_pods_total e force_delete_pod_errors_total no Pod GC Controller são aprimoradas para considerar a exclusão forçada de todos os pods. Um motivo é adicionado à métrica para indicar se o pod está sendo excluído por força, porque está sendo encerrado, órfão, encerrando com a taint "out-of-service" ou encerrando e não agendado.

  • O PersistentVolume (PV) controlador foi modificado para atribuir automaticamente um padrão StorageClass a qualquer não vinculado PersistentVolumeClaim com o storageClassName não definido. Além disso, o mecanismo de validação de PersistentVolumeClaim admissão no servidor da API foi ajustado para permitir a alteração de valores de um estado não definido para um nome StorageClass real.

Para ver o changelog completo do Kubernetes 1.28, consulte https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.28.md#changelog-since-v1270.

Kubernetes 1.27

O Kubernetes 1.27 agora está disponível no Amazon EKS. Para obter mais informações sobre o Kubernetes 1.27, consulte o anúncio oficial de lançamento.

Importante
  • O suporte para anotações seccomp.security.alpha.kubernetes.io/pod e seccomp container.seccomp.security.alpha.kubernetes.io anotações alfa foi removido. As seccomp anotações alfa foram descontinuadas em 1.19, e com sua remoção em 1.27, os seccomp campos não serão mais preenchidos automaticamente para seccomp com Pods anotações. Em vez disso, use o securityContext.seccompProfile campo para Pods ou contêineres para configurar seccomp perfis. Para verificar se você está usando as anotações alpha seccomp obsoletas em seu cluster, execute o seguinte comando:

    kubectl get pods --all-namespaces -o json | grep -E 'seccomp.security.alpha.kubernetes.io/pod|container.seccomp.security.alpha.kubernetes.io'
  • O argumento da linha de --container-runtime comando para o kubelet foi removido. O runtime padrão do contêiner para Amazon EKS é containerd desde a versão 1.24, o que elimina a necessidade de especificar o runtime do contêiner. A partir de 1.27 em diante, o Amazon EKS ignorará o --container-runtime argumento passado para qualquer script de bootstrap. É importante que você não passe esse argumento para --kubelet-extra-args evitar erros durante o processo de bootstrap do nó. Você deve remover o --container-runtime argumento de todos os seus fluxos de trabalho de criação de nós e criar scripts.

  • O kubelet no Kubernetes 1.27 aumentou o padrão kubeAPIQPS para 50 e kubeAPIBurst para 100. Esses aprimoramentos permitem kubelet lidar com um volume maior de consultas de API, melhorando os tempos de resposta e o desempenho. Quando as demandas de escalonamento Pods aumentam, devido aos requisitos de escalabilidade, os padrões revisados garantem que eles kubelet possam gerenciar com eficiência o aumento do workload. Como resultado, os Pod lançamentos são mais rápidos e as operações de cluster são mais eficazes.

  • Você pode usar uma Pod topologia mais refinada para difundir políticas como minDomain. Esse parâmetro permite especificar o número mínimo de domínios pelos quais você Pods deve estar distribuído. nodeAffinityPolicy e nodeTaintPolicy permita um nível extra de granularidade na Pod governança da distribuição. Isso está de acordo com as afinidades dos nós, as manchas e o matchLabelKeys campo topologySpreadConstraints em sua especificação Pod’s. Isso permite a seleção de cálculos Pods para distribuição após uma atualização contínua.

  • O Kubernetes 1.27 promoveu a versão beta de um novo mecanismo de política para StatefulSets que controla a vida útil de seus PersistentVolumeClaims (PVCs). A nova política PVC de retenção permite especificar se o PVCs gerado a partir do modelo de StatefulSet especificação será automaticamente excluído ou retido quando StatefulSet for excluído ou se as réplicas StatefulSet forem reduzidas.

  • A opção goaway-chance no servidor de API do Kubernetes ajuda a evitar que as conexões do cliente HTTP/2 fiquem presas em uma única instância do servidor de API, fechando aleatoriamente uma conexão. Quando a conexão for fechada, o cliente tentará se reconectar e provavelmente acessará um servidor de API diferente como resultado do balanceamento de carga. O Amazon EKS versão 1.27 tem a sinalização goaway-chance habilitada. Se sua workload em execução no cluster do Amazon EKS usa um cliente que não é compatível com HTTP GOAWAY, recomendamos atualizar seu cliente para lidar com GOAWAY reconectando-se no encerramento da conexão.

Para ver o changelog completo do Kubernetes 1.27, consulte https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.27.md#changelog-since-v1260.

Kubernetes 1.26

O Kubernetes 1.26 agora está disponível no Amazon EKS. Para obter mais informações sobre o Kubernetes 1.26, consulte o anúncio oficial de lançamento.

Importante

O Kubernetes 1.26 não é mais compatível com o CRI v1alpha2. Isso faz com que o kubelet deixe de registrar o nó se o runtime do contêiner não for compatível com o CRI v1. Isso também significa que o Kubernetes 1.26 não é compatível com a versão secundária 1.5 do containerd e versões anteriores. Caso esteja usando containerd, você precisará atualizar para a versão 1.6.0 ou mais recente do containerd antes de atualizar qualquer nó para o Kubernetes 1.26. Você também precisa atualizar qualquer outro runtime de contêiner que seja compatível apenas com o v1alpha2. Para obter mais informações, consulte o fornecedor de runtime de contêiner. Por padrão, as AMIs do Amazon Linux e do Bottlerocket incluem a versão 1.6.6 do containerd.

  • Antes de fazer o upgrade para o Kubernetes 1.26, atualize seu plug-in CNI da Amazon VPC para Kubernetes para a versão 1.12 ou mais recente. Se você não fizer a atualização para a versão 1.12 ou mais recente do plug-in CNI da Amazon VPC para Kubernetes, ele falhará. Para obter mais informações, consulte Atribuir IPs a pods com a CNI da Amazon VPC.

  • A opção goaway-chance no servidor de API do Kubernetes ajuda a evitar que as conexões do cliente HTTP/2 fiquem presas em uma única instância do servidor de API, fechando aleatoriamente uma conexão. Quando a conexão for fechada, o cliente tentará se reconectar e provavelmente acessará um servidor de API diferente como resultado do balanceamento de carga. O Amazon EKS versão 1.26 tem a sinalização goaway-chance habilitada. Se sua workload em execução no cluster do Amazon EKS usa um cliente que não é compatível com HTTP GOAWAY, recomendamos atualizar seu cliente para lidar com GOAWAY reconectando-se no encerramento da conexão.

Para ver o changelog completo do Kubernetes 1.26, consulte https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.26.md#changelog-since-v1250.