O Alibaba Cloud Container Service for Kubernetes 1.35 remove o suporte a cgroup v1, adiciona novos feature gates e descontinua o modo IPVS do kube-proxy.
Versões dos componentes
Versões compatíveis dos componentes principais em clusters ACK.
Componente principal | Versão |
Kubernetes | 1.35.1-aliyun.1, 1.35.2-aliyun.1, 1.35.7-aliyun.1 |
etcd | v3.5.21 |
containerd | 2.1.6 |
CoreDNS | v1.12.1.2 |
CSI | Atualize o csi-plugin e o csi-provisioner para as versões mais recentes. Para obter mais informações sobre as notas de versão, consulte csi-plugin e csi-provisioner. |
CNI | Flannel v0.28.0.6 |
Terway e TerwayControlplane estão na versão v1.15.0 ou posterior |
Alterações disruptivas
-
A partir da versão 1.35, o Kubernetes não oferece mais suporte ao cgroup v1. O suporte ao cgroup v2 atingiu o estágio Stable na versão 1.25. Atualize o sistema operacional do nó para oferecer suporte ao cgroup v2, caso contrário, o kubelet falhará ao iniciar.
Operating systems lista o suporte à versão do cgroup nas imagens de SO do ACK. Para atualizar, consulte Change operating systems .
Atualizações de recursos
-
A opção
PreferSameNodedo campotrafficDistributiondo service atingiu a disponibilidade geral (GA). Ela direciona o tráfego prioritariamente para endpoints no mesmo nó e recorre a outros apenas quando não houver disponibilidade local.O feature gate
PreferSameTrafficDistributionestá habilitado por padrão desde a versão 1.34 e oferece suporte tanto aPreferSameNodequanto aPreferSameZone. A opçãoPreferClosefoi renomeada paraPreferSameZone. O recurso
PodObservedGenerationTrackingatingiu a disponibilidade geral (GA). Quando ospecde um Pod é atualizado, seu campo.metadata.generationé incrementado. O kubelet agora registra a versão dospecprocessada no campo.status.observedGenerationdo Pod. Controllers e Operators podem verificar se alterações no Pod, como dimensionamento in-place, foram efetivadas no nó. Isso evita problemas causados por atrasos na atualização de status.A opção de política do gerenciador de topologia de nó
max-allowable-numa-nodes(max-allowable-numa-nodes) atingiu a disponibilidade geral (GA). O gerenciador de topologia agora calcula corretamente a afinidade em servidores com mais de 8 nós NUMA.A Downward API agora permite injetar rótulos de topologia de nó, como
topology.kubernetes.io/zoneetopology.kubernetes.io/region, nos Pods.O
StorageVersionMigrator, promovido para Beta e desabilitado por padrão, transfere a migração de versão de armazenamento de uma ferramenta externa para o núcleo do Kubernetes. Consulte Move Storage Version Migrator in-tree.O recurso
MutableCSINodeAllocatableCountagora está habilitado por padrão. Drivers CSI podem atualizar periodicamente a contagem de volumes alocáveis por nó. Isso impede que Pods fiquem presos no estadoContainerCreatingdevido à capacidade insuficiente de volume.O Opportunistic batching permite que o agendador armazene em cache resultados intermediários de agendamento, melhorando significativamente o throughput para Pods semelhantes.
O recurso
MaxUnavailableStatefulSetfoi promovido para Beta e está habilitado por padrão. Defina o campomaxUnavailablena estratégia de atualização contínua de um StatefulSet para limitar os Pods indisponíveis durante as atualizações.Os Certificados de Pod foram promovidos para Beta e estão desabilitados por padrão. Os Pods podem usar certificados para autenticação tls mútua com o kube-apiserver. A rotação automática oferece maior segurança do que tokens de ServiceAccount. Consulte KEP-4317: Pod Certificates.
O kubectl agora suporta o formato KYAML. O KYAML é um subconjunto de yaml para Kubernetes que resolve ambiguidades e problemas de segurança na análise sintática padrão do yaml. Desabilite-o com a variável de ambiente
KUBECTL_KYAML=false. Consulte Introducing KYAML.O campo
behaviordo HPA agora suporta limiares de tolerância configuráveis, substituindo a tolerância global fixa de 10%.Os namespaces de usuário foram promovidos para Beta. Os Pods podem ser executados em um namespace de usuário isolado do host. Processos de contêiner podem executar como root (UID 0) dentro de seu namespace, mas são mapeados para um id de usuário não privilegiado e diferente de zero no host. Isso reduz o risco de escalonamento de privilégios decorrente de escape de contêiner.
O recurso
ImageVolumeagora está habilitado por padrão. Ele permite que Pods montem o conteúdo de imagens de contêiner como volumes somente leitura do tipoimage. Requer containerd v2.1 ou posterior.O recurso
KubeletEnsureSecretPulledImagesfoi promovido para Beta e está habilitado por padrão. Ele impõe verificações de credenciais para Pods que usamimagePullPolicy: IfNotPresentem clusters multilocatários. Isso impede que Pods não autorizados acessem imagens privadas baixadas por Pods autenticados por meio do cache local.O recurso
ContainerRestartRules, promovido para Beta e habilitado por padrão, permite substituições de política de reinicialização no nível do contêiner viarestartPolicyerestartPolicyRulespara contêineres individuais. Consulte Individual container restart policy and rules.Drivers CSI agora podem definir o campo
spec.serviceAccountTokenInSecretsdo objetoCSIDrivercomotrue. Essa configuração monta tokens de ServiceAccount por meio de um Secret, em vez de colocá-los diretamente novolume context, evitando a exposição acidental de credenciais em logs e mensagens de erro. Consulte CSI driver opt-in for service account tokens via secrets field.Os Deployments agora incluem um campo
terminatingReplicasque conta os Pods com carimbo de data/hora de exclusão ainda não totalmente removidos.Correção das vulnerabilidades CVE-2025-61732 e CVE-2025-68121 na versão 1.35.2-aliyun.1.
Descontinuações
-
O
ipvs modedo kube-proxy foi descontinuado e tem remoção programada. Migre para o modo nftables, estável desde a v1.33. Como onftables modeé recente, os clusters ACK 1.35 ainda usam oipvs modecomo padrão, mas você pode selecionarnftablescomo Modo de Encaminhamento de service ao criar um cluster.Recomendamos o Terway Datapath V2 , que opera independentemente do kube-proxy.
A versão 1.35 é a última release com suporte ao containerd 1.x. Atualize o containerd para a versão 2.x antes de migrar para o Kubernetes 1.36 ou posterior. Clusters ACK utilizam o containerd 2.x como padrão desde a versão 1.33. Consulte Introduction to containerd 2.1.
Referências
Changelog completo do Kubernetes 1.35: CHANGELOG-1.35 e Kubernetes v1.35: Timbernetes (The World Tree Release).