Revisão das notas de release das versões do Kubernetes com suporte padrão
Este tópico fornece mudanças importantes que você deve conhecer em cada Kubernetes versão do 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.
nota
Para clusters 1.24
e posteriores, as AMIs do Amazon EKS publicadas oficialmente incluem o containerd
como o único runtime. As versões do Kubernetes anteriores à 1.24
usam o Docker como runtime padrão. Essas versões têm uma opção de sinalizador de bootstrap que você pode usar para testar as workloads em qualquer cluster compatível com o containerd
. Para ter mais informações, consulte Migrar de dockershim para containerd.
Kubernetes 1.31
O Kubernetes 1.31
já 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ãov1.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 de recursos
VolumeAttributesClass
beta e o recurso de API estão habilitados no Amazon EKSv1.31
. 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 recursoVolumeAttributesClass
(no caso do driver CSI do Amazon EBS, atualize para a versãov1.35.0
ou posterior para ativar automaticamente o recurso). Você poderá criar objetosVolumeAttributesClass
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 Kubernetese a documentação do driver da CSI para obter mais informações. -
Para obter mais informações sobre o driver CSI do Amazon EBS, consulte Armazenar volumes do Kubernetes com o Amazon EBS.
-
-
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
nosecurityContext
do contêiner. Antes do Kubernetesv1.30
, o AppArmor era controlado por anotações. Começando na versãov1.30
, ele é controlado por meio de campos. Para aproveitar esse recurso, recomendamos que você se afaste das anotações e use o campoappArmorProfile.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 no Kubernetes
v1.31
. 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.30
, consulte https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.31.md
Kubernetes 1.30
O Kubernetes 1.30
já 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.-
Para obter mais informações sobre o Amazon Linux, consulte Comparação entre o AL2 e o AL2023, no Guia do Usuário do Amazon Linux.
-
Para obter mais informações sobre como especificar o sistema operacional para um grupo de nós gerenciados, consulte Criar um grupo de nós gerenciados para seu cluster.
-
-
Com o Amazon EKS
1.30
, o rótulotopology.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çãodefault
no recursogp2 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 umStorageClass
padrão no cluster. É necessário referenciarStorageClass
pelo nomegp2
. Como alternativa, você pode implantar a classe de armazenamento padrão recomendada pelo Amazon EBS definindo o parâmetrodefaultStorageClass.enabled
como verdadeiro ao instalar av1.31.0
ou posterior doaws-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 ter 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
Kubernetes 1.29
O Kubernetes 1.29
já 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
doFlowSchema
ePriorityLevelConfiguration
foram descontinuados e não são mais exibidas no Kubernetesv1.29
. 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ãov1.29
.
-
O campo
.status.kubeProxyVersion
para objetos de nó agora está obsoleto, e o projeto Kubernetes está propondo remover esse campo em uma versão futura. O campo obsoleto não é preciso e historicamente foi gerenciado porkubelet
que, na verdade, não conhece a versãokube-proxy
ou mesmo sekube-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 recursoLegacyServiceAccountTokenCleanUp
rotula os tokens legados baseados em segredos gerados automaticamente como inválidos se não forem usados por um longo período (1 ano por padrão) e os remove automaticamente se o uso não for tentado por um longo período após serem marcados como inválidos (1 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
já está disponível no Amazon EKS. Para obter mais informações sobre o Kubernetes 1.28
, consulte o anúncio oficial de lançamento
-
Kubernetes
v1.28
expandiu a inclinação suportada entre o nó central e os componentes do ambiente de gerenciamento em uma versão secundária, den-2
paran-3
, para que os componentes do nó (kubelet
ekube-proxy
) da versão secundária suportada 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 suportada mais recente. -
As métricas
force_delete_pods_total
eforce_delete_pod_errors_total
noPod 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ãoStorageClass
a qualquer não vinculadoPersistentVolumeClaim
com ostorageClassName
não definido. Além disso, o mecanismo de validação dePersistentVolumeClaim
admissão no servidor da API foi ajustado para permitir a alteração de valores de um estado não definido para um nomeStorageClass
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