O Alibaba Cloud Container Service for Kubernetes Kubernetes 1.34 traz novas imagens padrão de nó, disponibilidade geral (GA) do DRA e reforço de TLS no kubelet.
Versões dos componentes
Versões suportadas dos componentes principais para clusters ACK.
Componente principal | Versão |
Kubernetes | 1.34.1-aliyun.1, 1.34.3-aliyun.1 e 1.34.10-aliyun.1 |
etcd | v3.5.21 |
containerd | 2.1.6 |
CoreDNS | v1.11.3.5-5321daf49-aliyun |
CSI | Para as versões mais recentes do csi-plugin e csi-provisioner, consulte as notas de lançamento de csi-plugin e csi-provisioner. |
CNI | Flannel v0.15.1.23-33d25c1-aliyun |
Terway e TerwayControlplane: v1.15.0 ou posterior |
Principais alterações
A partir da versão 1.34, novos pools de nós usam Alibaba Cloud Linux 3 Container-optimized por padrão, a menos que você especifique uma imagem de SO.
-
Na versão 1.34, em novos clusters com o Terway network plugin e DataPath V2, o kube-proxy não é mais executado em nós com Terway ativo. O DataPath V2 usa eBPF para acelerar o acesso à rede no modo ENI compartilhado.
Essa alteração se aplica apenas a clusters recém-criados.
-
A partir da versão 1.34, em ACK managed Pro cluster s, os recursos
serverTLSBootstrapeRotateKubeletServerCertificatesão ativados por padrão para novos standard and managed node pools.Isso permite a rotação automática e a validação pela CA do cluster dos certificados de servidor do kubelet, aumentando a segurança dos nós.
A partir da versão 1.34, o servidor kubelet não suporta mais os conjuntos de cifras
TLS_RSA_WITH_AES_256_GCM_SHA384eTLS_RSA_WITH_AES_128_GCM_SHA256. Para clusters atualizados, essa restrição se aplica apenas a novos nós.-
A partir da versão 1.34, não é mais possível marcar um nó como
unschedulabledurante o registro, e a opção de pool de nós defina como unschedulable deixa de ter efeito. Consulte kubelet: remove --register-schedulable flag #122384.Use taints de nó para impedir o agendamento em nós recém-registrados. Não use
node.kubernetes.io/unschedulablecomo chave de taint.# Add a NoSchedule taint kubectl taint nodes <node-name> key=value:NoSchedule # Remove the taint kubectl taint nodes <node-name> key=value:NoSchedule-
Atualizações de recursos
-
A funcionalidade principal da Dynamic Resource Allocation (DRA) atingiu a disponibilidade geral (GA) e está habilitada por padrão. As cargas de trabalho especificam atributos de dispositivo para solicitar recursos; o scheduler posiciona os pods em nós correspondentes, enquanto o driver do dispositivo e o kubelet configuram o acesso.
Outros recursos do DRA passaram para Beta e estão ativados por padrão. Isso permite que administradores acessem dispositivos em uso com permissões limitadas para monitoramento e diagnóstico, configurem opções de alocação de dispositivos no momento da solicitação e habilitem o relatório de recursos DRA pelo kubelet.
O kubelet agora suporta credenciais de curta duração para autenticação em repositórios de imagens de contêiner, evitando riscos associados a credenciais de longo prazo. Consulte Service Account Token Integration for Image Pulls Graduates to Beta.
A política de substituição de pods para Jobs atingiu a disponibilidade geral. Por padrão, a substituição começa quando o pod antigo inicia o encerramento, o que pode causar conflitos de recursos. Configure
.spec.podReplacementPolicypara adiar a substituição até que o pod antigo seja totalmente encerrado, evitando contenção e dimensionamento desnecessário.O recurso
RecoverVolumeExpansionFailureatingiu a disponibilidade geral. Se uma expansão de volume falhar devido a uma solicitação de capacidade de PVC excessiva, reduza a solicitação para recuperar o volume.As Volume Attributes Classes atingiram a disponibilidade geral e estão habilitadas por padrão. Defina parâmetros comuns de volume em um objeto
VolumeAttributesClasse referencie-o a partir de um PVC para aplicá-los.O kubelet agora recusa a inicialização de um pod estático se os objetos de API referenciados, como Secrets, ConfigMaps, PVCs ou ServiceAccounts, não existirem. Isso evita que os pods entrem em estado indefinido devido a dependências ausentes.
-
Otimizações de estabilidade e desempenho do kube-apiserver:
Solicitações de leitura são atendidas pelo cache, reduzindo repasses ao etcd e a pressão de memória do kube-apiserver. A versão 1.31 introduziu o ConsistentReadsfromCache; a versão 1.34 adiciona um Snapshottable API server cache que armazena versões históricas de dados.
Para solicitações
LIST, o Kubernetes agora suporta respostas em streaming. Esse recurso permite processamento com memória constante, evitando picos causados por grandes buscas de dados. Consulte Streaming Encoding for LIST Responses.
A versão 1.34.3-aliyun.1 corrige um problema em que pods DRA ficavam presos no estado
Terminatingdurante a exclusão. Consulte #133920.
Novos recursos
-
O recurso PodLevelResources passou para Beta. Defina solicitações e limites de recursos no nível do pod em vez de por contêiner, limitando o consumo total aos limites do pod. Consulte Pod Level Resource Specifications.
Este recurso não é suportado em nós Windows.
O kubectl agora suporta, por padrão, um arquivo
.kubercpara preferências do usuário. Diferente dokubeconfig, que contém credenciais, ele armazena apenas configurações não sensíveis do lado do cliente. Consulte Introduce kuberc.O recurso
ExternalServiceAccountTokenSignerpassou para Beta, introduzindo o service gRPCExternalJWTSignerpara assinar tokens de ServiceAccount com uma solução externa de gerenciamento de chaves, em vez de usar uma chave estática local.-
O recurso
SchedulerAsyncAPICallspassou para Beta, habilitando chamadas de API assíncronas no kube-scheduler por padrão.Isso reduz a latência de agendamento causada por chamadas de API bloqueantes, evita travamentos de threads devido a respostas lentas e acelera novas tentativas para pods não agendáveis. Consulte Asynchronous API calls during scheduling.
O recurso
WindowsGracefulNodeShutdownpassou para Beta e agora suporta desligamento gracioso de nós Windows.O PreferSameTrafficDistribution passou para Beta. Defina o campo
.spec.trafficDistributionde um Service comoPreferSameZoneouPreferSameNodepara priorizar endpoints locais à zona ou ao nó. O valorPreferClosefoi descontinuado. Consulte Traffic Distribution.O kubeletPSI passou para Beta, expondo métricas de Pressure Stall Information (PSI) na Summary API e como métricas do Prometheus. Consulte PSI Metrics for Kubernetes Graduates to Beta.
A política estática do gerenciador de cpu agora suporta
prefer-align-cpus-by-uncorecachepara otimizar cargas de trabalho em processadores com cache uncore desagregado. Consulte Introducing CPU Manager Static Policy Option for Uncore Cache Alignment.
Referências
Changelog completo do Kubernetes 1.34: CHANGELOG-1.34 e Kubernetes v1.34: Of Wind Will (O' WaW)