Versões de componentes, alterações disruptivas, novos recursos e correções de segurança no ACK para Kubernetes 1.31.
Versões dos componentes
|
Componente |
Versão |
|
Kubernetes |
1.31.9-aliyun.1 e 1.31.1-aliyun.1 |
|
etcd |
v3.5.15 |
|
containerd |
1.6.34 |
|
CoreDNS |
v1.11.3.2-f57ea7ed6-aliyun |
|
CSI |
csi-plugin e csi-provisioner atualizados para as versões mais recentes. Consulte as notas de versão do csi-plugin e do csi-provisioner. |
|
CNI |
Flannel v0.15.1.22-20a397e6-aliyun |
|
Terway e TerwayControlplane |
1.10.0 e posteriores |
O recurso Trunk ENI vem ativado por padrão em novos clusters gerenciados pelo ACK que utilizam o Terway e executam o Kubernetes 1.31 ou superior.
Alterações disruptivas
Essas alterações exigem ação antes ou imediatamente após a atualização para a versão 1.31.
Plug-in de volume CephFS removido
O plug-in de volume CephFS integrado kubernetes.io/cephfs foi removido na versão 1.31. Use o driver CSI do CephFS como alternativa.
Se seu cluster utilizar o plug-in de volume CephFS, migre para o driver CSI do CephFS e reimplante a aplicação antes de atualizar para a versão 1.31.
Plug-in de volume CephRBD removido
O plug-in de volume CephRBD integrado kubernetes.io/rbd foi removido na versão 1.31. Use o driver CSI do RBD como alternativa.
Se seu cluster utilizar o plug-in de volume CephRBD, migre para o driver CSI do RBD e reimplante a aplicação antes de atualizar para a versão 1.31.
CSIMigrationPortworx ativado por padrão
A feature gate CSIMigrationPortworx vem ativada por padrão e migra volumes do antigo plug-in Portworx integrado para o plug-in CSI do Portworx.
Se você utiliza o Portworx, instale e configure o plug-in CSI do Portworx antes de atualizar para a versão 1.31.
Novos recursos
Agendamento de cargas de trabalho
MatchLabelKeysInPodAffinity promovido para beta (ativado por padrão)
Para resolver violações de afinidade e anti-afinidade durante atualizações contínuas, especifique os campos matchLabelKeys e mismatchLabelKeys em podAffinity e podAntiAffinity. O agendador usa esses campos para distinguir pods antigos de novos durante uma implantação. Consulte matchLabelKeys e mismatchLabelKeys.
Armazenamento
RecursiveReadOnlyMounts promovido para beta (ativado por padrão)
Volumes montados em pods agora podem ser definidos como somente leitura de forma recursiva. Todos os arquivos e subdiretórios no ponto de montagem tornam-se somente leitura. Consulte Montagens recursivas somente leitura.
HonorPVReclaimPolicy promovido para beta (ativado por padrão)
Agora é possível adicionar finalizers a um PersistentVolume (PV) para garantir que um PV com a política de recuperação Delete seja excluído apenas após a exclusão do armazenamento subjacente. Consulte Finalizer de proteção contra exclusão de PersistentVolume.
Cargas de trabalho
JobSuccessPolicy promovido para beta (ativado por padrão)
Agora é possível configurar uma política de sucesso para Indexed Jobs. Consulte Política de sucesso de Job.
kubelet não reinicia mais containers em alterações de spec sem mudança de imagem
Quando o spec de um pod muda, mas o campo image permanece inalterado, o kubelet não reinicia o container. Isso evita reinicializações desnecessárias causadas por atualizações de spec que não afetam a funcionalidade.
Segurança e autenticação
ServiceAccountTokenNodeBinding promovido para beta (ativado por padrão)
Tokens de ServiceAccount agora podem ser vinculados a um nó específico. O token é invalidado ao expirar ou quando o nó associado ou o ServiceAccount é excluído.
API e ferramentas
DisableNodeKubeProxyVersion promovido para beta (ativado por padrão)
O campo status.nodeInfo.kubeProxyVersion deixou de exibir a versão do kube-proxy. Esse campo era impreciso e não refletia a versão real do kube-proxy no nó.
Perfil personalizado no kubectl debug promovido para beta
O comando kubectl debug agora suporta perfis personalizados para solução de problemas em pods. Consulte Kubernetes 1.31: Perfil Personalizado no Kubectl Debug Promovido para Beta.
Streaming do kubectl migrado de SPDY para WebSocket
Os comandos kubectl cp, kubectl attach, kubectl exec e kubectl port-forward passaram a usar WebSocket para streaming em vez de SPDY. O WebSocket é o protocolo de streaming padrão para clientes Kubernetes.
Leituras consistentes do cache promovidas para beta
O servidor de API do Kubernetes agora pode servir leituras consistentes diretamente do cache, em vez de buscar todo o conjunto de dados no etcd, melhorando a eficiência das requisições List. Consulte Leituras consistentes do cache.
Validação de CRD
Validação de caBundle imposta
Se o campo caBundle em uma CustomResourceDefinition (CRD) não estiver vazio, mas contiver um valor inválido ou nenhum certificado CA, a CRD deixará de atender requisições. Assim que um caBundle válido for estabelecido, atualizações que o tornariam inválido ou vazio serão rejeitadas para evitar interrupção do serviço.
Correções de segurança
As seguintes CVEs foram corrigidas na versão 1.31.9-aliyun.1: