Revisão das notas de release das versões do Kubernetes com suporte padrão - 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 padrão

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

Kubernetes 1.33

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

Importante
  • A API beta de alocação dinâmica de recursos do Kubernetes está habilitada.

    • Essa API beta melhora a experiência de agendamento e monitoramento de workloads que exigem recursos, como GPUs.

    • A API beta é definida pela comunidade Kubernetes e poderá mudar em versões futuras do Kubernetes.

    • Analise cuidadosamente os estágios dos recursos na documentação do Kubernetes para compreender as implicações do uso de APIs beta.

  • A AWS não está lançando uma AMI do Amazon Linux 2 otimizada para EKS para o Kubernetes 1.33.

  • Redimensionamento de recursos de pod no local (beta): o redimensionamento de recursos no local foi promovido para beta, permitindo atualizações dinâmicas dos recursos de CPU e memória para pods existentes sem reinicializações, o que possibilita a escalabilidade vertical de workloads com estado sem tempo de inatividade e ajustes contínuos de recursos com base nos padrões de tráfego.

  • Contêineres sidecar agora estáveis: os contêineres sidecar foram promovidos para estáveis, implementando sidecars como contêineres init especiais com restartPolicy: Always que iniciam antes dos contêineres de aplicações, são executados durante todo o ciclo de vida do pod e suportam sondas para sinalização do estado operacional.

    • Para obter mais informações, consulte Sidecar Containers na documentação do Kubernetes.

  • Descontinuação da API Endpoints: a API Endpoints agora está oficialmente obsoleta e retornará avisos quando acessada. Migre workloads e scripts para usar a API EndpointSlices, que é compatível com recursos modernos, como rede de pilha dupla, e lida com vários EndpointSlices por serviço.

  • Compatibilidade com o Elastic Fabric Adapter: o grupo de segurança padrão para clusters do Amazon EKS agora é compatível com o tráfego do Elastic Fabric Adapter (EFA). O grupo de segurança padrão tem uma nova regra de saída que permite o tráfego do EFA com o destino do mesmo grupo de segurança. Isso permite o tráfego do EFA dentro do cluster.

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

Kubernetes 1.32

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

Importante
  • A versão da API flowcontrol.apiserver.k8s.io/v1beta3 de FlowSchema e PriorityLevelConfiguration foi removida na versão 1.32. Se você estiver usando essas APIs, deverá atualizar suas configurações para usar a versão compatível mais recente antes de realizar a atualização.

  • A anotação metadata.annotations[kubernetes.io/enforce-mountable-secrets] do ServiceAccount foi descontinuada na versão 1.32 e será removida em uma futura versão secundária do Kubernetes. É recomendado usar namespaces separados para isolar o acesso aos segredos montados.

  • A versão 1.32 do Kubernetes é a última versão para a qual o Amazon EKS lançará AMIs do Amazon Linux 2 (AL2). A partir da versão 1.33, o Amazon EKS continuará a lançar AMIs baseadas no Amazon Linux 2023 (AL2023) e no Bottlerocket.

  • O recurso Memory Manager foi promovido para o status de disponível ao público em geral (GA) na versão 1.32 do Kubernetes. Essa melhoria proporciona uma alocação de memória mais eficiente e previsível para aplicações em contêineres, o que é especialmente vantajoso para workloads com requisitos específicos de memória.

  • Agora, os PersistentVolumeClaims (PVCs) criados por StatefulSets incluem a funcionalidade de limpeza automática. Quando os PVCs não forem mais necessários, eles serão excluídos automaticamente, mantendo a persistência de dados durante as atualizações do StatefulSet e durante as operações de manutenção de nós. Esse recurso simplifica o gerenciamento de armazenamento e ajuda a evitar PVCs isolados em seu cluster.

  • Foi introduzida a funcionalidade de Seletor de campos para recursos personalizados, permitindo que os desenvolvedores adicionem seletores de campo aos recursos personalizados. Esse recurso fornece as mesmas funcionalidades de filtragem disponíveis para objetos do Kubernetes integrados aos recursos personalizados, possibilitando uma filtragem de recursos mais precisa e eficiente, além de promover melhores práticas de design de APIs.

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

Alterações na autenticação anônima

A partir da versão 1.32 do Amazon EKS, a autenticação anônima passa a ser restrita aos seguintes endpoints de verificação de integridade do servidor da API:

  • /healthz

  • /livez

  • /readyz

As solicitações enviadas para qualquer outro endpoint usando o usuário system:unauthenticated receberão uma resposta HTTP 401 Unauthorized. Esse aprimoramento de segurança ajuda a evitar acessos não intencionais ao cluster que poderiam ocorrer devido a configurações incorretas das políticas de RBAC.

nota

O perfil RBAC public-info-viewer permanece válido para os endpoints de verificação de integridade listados acima.

Descontinuação da AMI do Amazon Linux 2

Para as versões 1.33 e versões posteriores do Kubernetes, o EKS não fornecerá Imagens de Máquina da Amazon (AMIs) otimizadas e desenvolvidas previamente do Amazon Linux 2 (AL2).

A AWS recomenda a adoção do modo automático do EKS ou a migração para um sistema operacional mais recente, como o Amazon Linux 2023 (AL2023) ou o Bottlerocket.

nota

Essa atualização se aplica às AMIs do AL2 otimizadas para o EKS. Para obter mais informações sobre o sistema operacional em si, consulte as Perguntas frequentes do Amazon Linux 2.

Kubernetes 1.31

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

Importante
  • O sinalizador do kubelet --keep-terminated-pod-volumes, obsoleto desde 2017, foi removido como parte da versão 1.31. Essa alteração afeta o modo como os volumes de pods encerrados são tratados pelo kubelet. Se você usa esse sinalizador nas configurações do seu nó, deverá atualizar seus scripts de bootstrap e modelos de inicialização para removê-lo antes da atualização.

  • A porta do recurso VolumeAttributesClass beta e o recurso de API estão habilitados na versão 1.31 do Amazon EKS. Esse recurso permite que operadores de cluster modifiquem propriedades mutáveis de volumes persistentes (PVs) gerenciados por drivers da CSI compatíveis, incluindo o driver da CSI do Amazon EBS. Para aproveitar esse recurso, certifique-se de que o driver CSI seja compatível com o recurso VolumeAttributesClass (no caso do driver CSI do Amazon EBS, atualize para a versão 1.35.0 ou posterior para ativar automaticamente o recurso). Você poderá criar objetos VolumeAttributesClass para definir os atributos de volume desejados, como tipo de volume e throughput, e associá-los às suas declarações de volume persistentes (PVCs). Consulte a documentação oficial do Kubernetes e a documentação do driver da CSI para obter mais informações.

  • O suporte do Kubernetes a AppArmor avançou para estável e agora está disponível para o público em geral. Esse recurso permite que você proteja seus contêineres com o AppArmor definindo o campo appArmorProfile.type no securityContext do contêiner. Antes da versão 1.30 do Kubernetes, o AppArmor era controlado por anotações. Começando na versão 1.30, ele é controlado usando campos. Para aproveitar esse recurso, recomendamos que você se afaste das anotações e use o campo appArmorProfile.type para garantir que suas cargas de trabalho sejam compatíveis.

  • O recurso de tempo de transição da última fase de PersistentVolume avançou para estável e agora está disponível para uso pelo público em geral na versão 1.31 do Kubernetes. Esse recurso introduz um novo campo, .status.lastTransitionTime, em PersistentVolumeStatus que fornece um registro de data e hora de quando um PersistentVolume avançou pela última vez para uma fase diferente. Esse aprimoramento permite um melhor rastreamento e gerenciamento de PersistentVolumes, especialmente em cenários em que a compreensão do ciclo de vida dos volumes é importante.

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

Kubernetes 1.30

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

Importante
  • A partir da versão 1.30 do Amazon EKS ou em versões mais recentes, qualquer grupo de nós gerenciados recém-criados será automaticamente padronizado para usar o Amazon Linux 2023 (AL2023) como o sistema operacional do nó. Anteriormente, os novos grupos de nós seriam padronizados para usar o Amazon Linux 2 (AL2). É possível continuar a usar AL2 ao escolhê-lo como o tipo de AMI durante a criação de um novo grupo de nós.

  • Com o Amazon EKS 1.30, o rótulo topology.k8s.aws/zone-id é adicionado a nós de processamento. É possível visualizar os IDs de Zonas de disponibilidade (IDs de AZs) para determinar o local de recursos em uma conta em relação aos recursos em outra conta. Para obter mais informações, consulte IDs de zona de disponibilidade para os recursos do AWS no Guia do Usuário do AWS RAM.

  • A partir da versão 1.30, o Amazon EKS não incluirá mais a anotação default no recurso gp2 StorageClass aplicado a clusters recém-criados. Isso não terá impacto se você estiver referenciando essa classe de armazenamento pelo nome. Você deverá tomar medidas se estiver confiando em ter um StorageClass padrão no cluster. É necessário referenciar StorageClass pelo nome gp2. Como alternativa, você pode implantar a classe de armazenamento padrão recomendada pelo Amazon EBS definindo o parâmetro defaultStorageClass.enabled como verdadeiro ao instalar a versão 1.31.0 ou posterior do aws-ebs-csi-driver add-on.

  • A política do IAM mínima exigida para o perfil do IAM do cluster do Amazon EKS foi alterada. A ação ec2:DescribeAvailabilityZones é obrigatória. Para obter mais informações, consulte Função do IAM do cluster do Amazon EKS.

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