Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:(Descontinuado) Notas de versão do Kubernetes 1.24

Última atualização: Jun 27, 2026

O ACK participa do Programa de Conformidade Certificado do Kubernetes. Este documento aborda as alterações implementadas no ACK para oferecer suporte ao Kubernetes 1.24.

Importante

Antes de atualizar para o Kubernetes 1.24, revise as alterações disruptivas listadas abaixo. Várias exigem ações prévias à atualização.

  • Remoção do Dockershim: O Docker não é mais suportado como runtime de contêiner. Use o containerd para novos nós. As imagens Docker continuam funcionando normalmente.

  • Conflito de portas NodePort: O kube-proxy não reserva mais portas NodePort. Se algum Service do tipo NodePort no cluster usar uma porta dentro do intervalo net.ipv4.ip_local_port_range de um nó, as conexões TCP poderão falhar intermitentemente após a atualização, causando falhas na verificação de integridade e exceções de serviço. Verifique se nenhuma porta NodePort se sobrepõe ao parâmetro de kernel net.ipv4.ip_local_port_range em cada nó antes de prosseguir com a atualização. Consulte o PR da comunidade Kubernetes.

  • NGINX Ingress Controller: As versões 0.44.0 e anteriores do Ingress Controller usam a API Ingress v1beta1, descontinuada e incompatível com o Kubernetes 1.24. Atualize o NGINX Ingress Controller para a versão 1.2.0 ou superior antes de migrar o cluster da versão 1.22 para a 1.24.

  • Tokens de conta de serviço: O feature gate LegacyServiceAccountTokenNoAutoGeneration agora está ativado por padrão. A API Secret não gera mais automaticamente Secrets para tokens de contas de serviço. Use a API TokenRequest para gerar tokens. Todos os tokens emitidos pela API TokenRequest expiram por padrão. Para criar um token sem expiração, consulte service-account-token-secrets.

  • Rótulos de nós do plano de controle (clusters dedicados ACK): O kubeadm não adiciona mais o rótulo node-role.kubernetes.io/master aos nós do plano de controle; apenas o rótulo node-role.kubernetes.io/control-plane é aplicado. Os taints node-role.kubernetes.io/master:NoSchedule e node-role.kubernetes.io/control-plane:NoSchedule são configurados. O taint node-role.kubernetes.io/master:NoSchedule será removido no Kubernetes 1.25.

Versões dos componentes

Componente

Versão

Alterações

Kubernetes

1.24.6-aliyun.1

Consulte as alterações disruptivas acima e os Detalhes da versão.

etcd

3.5.4

Nenhuma

CoreDNS

1.9.3.6-32932850-aliyun

Consulte a seção CoreDNS.

Container Runtime Interface (CRI)

containerd 1.5.13

Nenhuma

Container Storage Interface (CSI)

1.26

Nenhuma

Container Network Interface (CNI) — Flannel

v0.15.1.13-941db231-aliyun

Consulte a seção Flannel.

Terway

Deve ser posterior à 1.1.0

NVIDIA Container Runtime

3.7.0

Nenhuma

Ingress Controller

1.2.0-aliyun.1

Consulte a seção Ingress Controller.

CoreDNS

A atualização para o CoreDNS 1.9.3.6-32932850-aliyun não afeta as cargas de trabalho em execução. As mudanças incluem:

  • Otimização das configurações de afinidade para agendamento do CoreDNS, permitindo sua execução em clusters com nós de dimensionamento automático.

  • Desativação do cache de resultados de resolução DNS do tipo ServError.

  • Alteração da anti-afinidade de pods baseada em nomes de host de preferred para required, impondo regras de anti-afinidade nos domínios topológicos dos nós especificados.

  • Suporte a parâmetros personalizados.

  • Análise de logs ativada por padrão.

Flannel

  • Adição de um contêiner de inicialização para instalar o plugin Flannel.

  • Definição do diretório /var/run como local padrão para cache de endereços IP, evitando vazamentos de IP durante reinicializações de nós.

  • Suporte a instâncias ARM64.

  • Correção das vulnerabilidades CVE-2022-28391 e CVE-2022-37434.

Ingress Controller

Importante

O Ingress Controller nas versões 0.44.0 e anteriores usa a API Ingress v1beta1, mantida no Kubernetes 1.22, mas indisponível no Kubernetes 1.24. Atualize o NGINX Ingress Controller para a versão 1.2.0 ou superior antes de atualizar o cluster da versão 1.22 para a 1.24.

Essa atualização pode interromper temporariamente as cargas de trabalho e causar problemas de compatibilidade nas configurações existentes. Avalie o impacto antes de iniciar a atualização.

Detalhes da versão

Alterações disruptivas

Remoção do Dockershim

O Dockershim foi removido no Kubernetes 1.24. O Docker deixou de ser suportado como runtime de contêiner. As imagens Docker continuam funcionando, pois apenas o runtime mudou. Use o containerd para novos nós. Consulte o FAQ sobre a Remoção do Dockershim e a issue relacionada no GitHub.

Aumento de memória do kube-apiserver (coleta de lixo do Go 1.18)

O Kubernetes 1.24 é compilado com Go 1.18, o que altera o algoritmo de coleta de lixo. Como resultado, a latência de resposta da API no percentil 99 diminuiu 10 vezes, mas o uso de memória do kube-apiserver aumentou cerca de 25%. Para reduzir o consumo de memória aos níveis anteriores, defina a variável de ambiente GOGC como 63.

Desativação da geração automática de tokens de conta de serviço

O feature gate LegacyServiceAccountTokenNoAutoGeneration está ativado por padrão. A API Secret não gera mais automaticamente Secrets para tokens de contas de serviço. Use a API TokenRequest para essa finalidade. Todos os tokens emitidos pela API TokenRequest expiram por padrão. Para criar um token permanente, consulte service-account-token-secrets.

Alteração em rótulos de nós do plano de controle (clusters dedicados ACK)

O kubeadm não aplica mais o rótulo node-role.kubernetes.io/master aos nós do plano de controle. Apenas o rótulo node-role.kubernetes.io/control-plane é adicionado. Os taints node-role.kubernetes.io/master:NoSchedule e node-role.kubernetes.io/control-plane:NoSchedule são aplicados aos novos nós do plano de controle. O taint node-role.kubernetes.io/master:NoSchedule será removido no Kubernetes 1.25.

Conflito entre porta NodePort e parâmetro de kernel

O kube-proxy não reserva mais portas para Services do tipo NodePort. Se um Service NodePort usar uma porta dentro do intervalo definido pelo parâmetro de kernel net.ipv4.ip_local_port_range em um nó, as conexões TCP poderão falhar intermitentemente. Isso pode provocar falhas nas verificações de integridade e exceções no serviço. Antes de atualizar, confirme que nenhuma porta NodePort no cluster entra em conflito com o valor de net.ipv4.ip_local_port_range em qualquer nó. Veja o PR da comunidade Kubernetes.

Correção de segurança: CVE-2022-3172

Novos recursos

Agendamento baseado em capacidade de armazenamento

O recurso CSIStorageCapacity atingiu o estágio GA. A API expõe a capacidade de armazenamento disponível para agendar pods apenas em nós com espaço suficiente, evitando falhas decorrentes de erros na criação ou montagem de volumes. Consulte Restrições de Capacidade de Armazenamento para Agendamento de Pods.

Sondas gRPC (preview público)

As sondas gRPC estão disponíveis em preview público. O feature gate GRPCContainerProbe vem ativado por padrão. Saiba mais em Configurar sondas.

Melhorias no plugin CSI

O plugin CSI agora suporta finalizers de proteção contra exclusão para volumes persistentes (PV) in-tree e a migração de plugins de armazenamento in-tree para drivers CSI out-of-tree. Leia o Documento de Design de Migração de Plugin de Armazenamento In-tree para CSI.

Suporte a fuso horário em CronJobs

Os CronJobs aceitam agora um parâmetro opcional timeZone. Ative o feature gate CronJobTimeZone para executar CronJobs em um fuso horário específico. Esse recurso entrará em preview público no Kubernetes 1.25.

Suporte a Windows no kube-proxy

Duas novas opções permitem executar o kube-proxy no Windows:

  • --forward-healthcheck-vip: Encaminha requisições de verificação de integridade destinadas ao endereço IP virtual (VIP) de um Service para o Service de verificação de integridade do kube-proxy.

  • --root-hnsendpoint-name: Especifica o nome do endpoint do Host Networking Service (HNS) para o namespace de rede raiz.

OpenAPI V3

A versão V3 do OpenAPI está habilitada por padrão.

Desativação da verificação de certificados SHA-1

Certificados assinados com o algoritmo de hash SHA-1 não podem mais ser verificados por padrão. Essa mudança decorre da compilação do Kubernetes 1.24 com Go 1.18.

Cadeia iptables para detecção de modo

O kubelet cria uma cadeia chamada KUBE-IPTABLES-HINT na tabela mangle. Componentes conteinerizados que precisam modificar regras de iptables no namespace de rede do host podem usar essa cadeia para detectar de forma confiável se o sistema usa iptables-legacy ou iptables-nft.

Métricas novas e atualizadas

Métrica

Descrição

webhook_fail_open_count

Monitora falhas de webhook.

sync_proxy_rules_no_local_endpoints_total

Monitora Services sem endpoints internos (kube-proxy).

kubelet_volume_stats_health_abnormal

Monitora o status de integridade dos volumes (kubelet).

evictions_total

Substitui a métrica descontinuada evictions_number.

Recursos que atingiram GA no Kubernetes 1.23 (mantidos na 1.24)

  • Logs estruturados (preview público desde a 1.23): Componentes como kube-scheduler e kubelet agora registram logs em formato estruturado chave=valor. Por exemplo, verb="GET" URI="/healthz" latency="57.126µs" resp=200 em vez de GET /healthz: (57.126µs) 200. Expressões regulares não são mais necessárias para analisar esses logs. Imprima logs em texto estruturado ou formato JSON. Por padrão, os logs em formato JSON são gravados em stderr. Veja Introdução aos Logs Estruturados.

  • StatefulSet .spec.minReadySeconds: Suportado por padrão (preview público desde a 1.23). Consulte Segundos Mínimos de Prontidão para StatefulSets.

  • Campo StorageCapacity do CSI editável: O campo CSIDriver.Spec.StorageCapacity agora pode ser modificado.

  • JobReadyPods: A quantidade de pods no estado Ready aparece no campo de status do Job.

  • Validação de CRD com CEL: O feature gate CustomResourceValidationExpressions usa a Common Expression Language (CEL) por meio da extensão x-kubernetes-validations para validar CustomResourceDefinitions (CRDs).

  • Binários de cliente Windows ARM64: Binários do lado do cliente podem ser compilados para Windows em arquitetura ARM64 (suporte a partir do Go 1.17).

  • Estado Processing da workqueue no client-go: Ao encerrar uma workqueue no estado Processing, o processo aguarda a conclusão de todas as tarefas em andamento.

  • Métrica admission_webhook_request_total: Inclui nome do webhook, tipo de admissão, operação, código de status HTTP, status de rejeição e namespace do recurso como rótulos.

  • Métricas do servidor de API atingem GA: controller_admission_duration_seconds, step_admission_duration_seconds, webhook_admission_duration_seconds, apiserver_current_inflight_requests, apiserver_response_sizes. Uma nova métrica monitora requisições LIST ao servidor de API do Kubernetes.

  • Métricas do agendador atingem GA: pending_pods, preemption_attempts_total, preemption_victims, schedule_attempts_total, scheduling_attempt_duration_seconds (anteriormente e2e_scheduling_duration_seconds), pod_scheduling_duration_seconds, pod_scheduling_attempts, framework_extension_point_duration_seconds, plugin_execution_duration_seconds, queue_incoming_pods_total.

  • Verificações de integridade do kube-controller-manager: Todos os controladores agora estão incluídos.

  • Aplicação de pod.Spec.OS: Se o campo OS estiver definido em um pod, mas não corresponder ao rótulo de SO do nó, o kubelet rejeitará o pod.

Melhorias no kubectl (1.23–1.24)

  • O comando kubectl logs exibe o log do primeiro contêiner por padrão.

  • O comando kubectl describe ingress mostra agora as IngressClasses.

  • O comando kubectl version apresenta a versão embutida do Kustomize.

  • O comando kubectl get oferece preenchimento automático via tabulação para nomes de recursos (por exemplo, kubectl get pod pod1 <TAB>).

  • Os shells fish e PowerShell agora têm suporte para conclusão de código e sugestões.

Recursos descontinuados e removidos

Removidos no Kubernetes 1.24

Item

Substituto

Opção de inicialização --network-plugin do kubelet (específica do Docker)

Removida junto com o Dockershim.

Parâmetros --address, --insecure-bind-address, --port, --insecure-port=0 (kube-apiserver)

Removidos.

Parâmetros --port=0, --address (kube-controller-manager, kube-scheduler)

Removidos.

Versões de auditoria audit.k8s.io/v1alpha1 e audit.k8s.io/v1beta1 (opções de auditoria do kube-apiserver)

Apenas audit.k8s.io/v1 é suportada.

API v1beta1 do CRD VolumeSnapshot (descontinuada no Kubernetes 1.20)

Use a versão v1.

Anotação de Service tolerate-unready-endpoints (descontinuada no Kubernetes 1.11)

Use Service.spec.publishNotReadyAddresses.

Limpeza dinâmica de logs

Recurso removido. Consulte Sanitização dinâmica de logs e KEP-1753.

Feature gate DynamicKubeletConfig (descontinuado no Kubernetes 1.22)

Removido.

Feature gates SetHostnameAsFQDN, ImmutableEphemeralVolumes, NamespaceDefaultLabelName (GA no Kubernetes 1.22)

Removidos.

Versão de API networking.k8s.io/v1alpha1

Removida.

Descontinuados no Kubernetes 1.24

Item

Substituto ou observação

Service.Spec.LoadBalancerIP

Descontinuado; não suporta pilha dupla IPv4/IPv6.

metadata.clusterName

Descontinuado; será removido na próxima versão.

Feature gates ValidateProxyRedirects, StreamingProxyRedirects

Descontinuados.

API v1beta1 de CSIStorageCapacity.storage.k8s.io

A versão v1 é utilizada; a v1beta1 será removida no Kubernetes 1.27.

Descontinuados no Kubernetes 1.23

Item

Substituto ou observação

FlexVolume

Use drivers CSI out-of-tree. Consulte o FAQ de Plugins de Volume do Kubernetes para Fornecedores de Armazenamento.

Flags específicas de linha de comando do klog

O Kubernetes simplificará progressivamente os logs dos componentes. Veja Logs do Sistema.

Flag --experimental-patches (kubeadm init, join, upgrade)

Use --patches. Observação: --patches e --config não podem ser usados simultaneamente.

Parâmetro --log-file

Use o kube-log-runner. Consulte kube-log-runner.

Métrica scheduler_volume_scheduling_duration_seconds

Descontinuada.

Métrica apiserver_longrunning_gauge

Substituída por apiserver_longrunning_requests.

Comando kubectl --dry-run sem modo especificado

Especifique `--dry-run=(server

client

none)`.

Versão de API autoscaling/v2beta2

HorizontalPodAutoscaler (HPA) v2 atingiu GA; use autoscaling/v2.

Alterações de API

Kubernetes 1.24

Versão de API removida

Substituto

client.authentication.k8s.io/v1alpha1

v1

node.k8s.io/v1alpha1

v1

CSIStorageCapacity.storage.k8s.io/v1beta1

v1 (v1beta1 removida no Kubernetes 1.27)

networking.k8s.io/v1alpha1

Removida.

Kubernetes 1.23

Versão de API removida

Substituto

rbac.authorization.k8s.io/v1alpha1

rbac.authorization.k8s.io/v1

scheduling.k8s.io/v1alpha1

scheduling.k8s.io/v1

Outras alterações de API no Kubernetes 1.23

  • HorizontalPodAutoscaler v2 atingiu GA. A versão de API autoscaling/v2beta2 foi descontinuada.

  • O campo Service.spec.ipFamilyPolicy é obrigatório ao criar ou atualizar Services com pilha dupla IPv4/IPv6. Defina-o como PreferDualStack ou RequireDualStack.

  • Componentes configurados via LogFormatRegistry devem ser atualizados para usar a API logr v1.0.0. Logs JSON são exportados no formato go-logr/zapr.

Feature gates

Os feature gates passam por três estágios: Alpha (desativado por padrão), Beta (ativado por padrão) e GA (sempre ativado, não pode ser desativado). Para detalhes completos, consulte Feature Gates.

Atingindo GA no Kubernetes 1.24

Feature gate

Observações

NonPreemptingPriority

GA.

IndexedJob

GA; não pode ser desativado.

SuspendJob

GA; será removido no Kubernetes 1.26. Permite suspender e retomar Jobs.

RemoveSelfLink

GA. Define .metadata.selfLink como string vazia para todos os objetos e coleções. O campo ainda existe na API. Descontinuado desde o Kubernetes 1.16.

PodAffinityNamespaceSelector

GA; será removido no Kubernetes 1.26. Habilita regras de afinidade de pods entre namespaces.

CSRDuration

GA. Permite especificar a validade do certificado através do campo opcional spec.expirationSeconds em recursos CertificateSigningRequest. Valor mínimo: 600.

Preview público no Kubernetes 1.24 (ativado por padrão)

Feature gate

Observações

JobReadyPods

Rastreia o número de pods Ready criados por um Job, registrado no campo status.

ServerSideFieldValidation

Valida recursos no lado do servidor (em vez do cliente) ao executar kubectl create ou kubectl apply.

Preview público no Kubernetes 1.24

Feature gate

Observações

AnyVolumeDataSource

Permite recursos personalizados como fontes de dados para PersistentVolumeClaim (PVC).

Ativado por padrão no Kubernetes 1.24

Feature gate

Observações

LegacyServiceAccountTokenNoAutoGeneration

Desativa a geração automática de Secrets para tokens de contas de serviço.

Descontinuado no Kubernetes 1.24

Feature gate

Observações

ValidateProxyRedirects

Descontinuado.

StreamingProxyRedirects

Descontinuado.

Removido no Kubernetes 1.24

Feature gate

Observações

DynamicKubeletConfig

Descontinuado no Kubernetes 1.22; removido na 1.24.

SetHostnameAsFQDN, ImmutableEphemeralVolumes, NamespaceDefaultLabelName

Atingiram GA no Kubernetes 1.22; removidos na 1.24.

Atingindo GA no Kubernetes 1.23

Feature gate

Observações

TTLAfterFinished

Usa controladores TTL para limpar objetos de recursos finalizados.

ConfigurableFSGroupPolicy

Configura permissões de volume e políticas de alteração de propriedade. A métrica volume_fsgroup_recursive_apply foi renomeada para volume_apply_access_control.

IPv4/IPv6 Dual-stack Networking

GA; o feature gate IPv6DualStack foi removido.

CSIVolumeFSGroupPolicy

GA; sempre ativado.

IngressClassNamespacedParams

GA. Permite que IngressClasses referenciem parâmetros com escopo de namespace. Adiciona os campos scope e namespace a IngressClass.spec.parameters.

StorageObjectInUseProtection

GA no Kubernetes 1.11; será removido no Kubernetes 1.25. Retarda a exclusão de PVs ou PVCs enquanto estiverem em uso.

NodeLease

O interruptor do feature gate foi removido; o recurso está sempre ativado. Atingiu GA no Kubernetes 1.17.

Preview público no Kubernetes 1.23

Feature gate

Observações

StatefulSetAutoDeletePVC

Permite a exclusão automática de PVCs criados por pods de StatefulSet.

PodSecurity

Preview público; ativado por padrão. Substitui o controlador de admissão PodSecurityPolicy, que foi descontinuado.

KubeletPodResourcesGetAllocatable

Habilita o endpoint GetAllocatableResources por padrão. Consulte Endpoint gRPC GetAllocatableResources.

WindowsHostProcessContainers

Habilita contêineres Windows HostProcess por padrão.

GenericEphemeralVolume

Ativado por padrão. Suporta todas as capacidades padrão de volumes: drivers de armazenamento de terceiros, snapshots de volume e rastreamento de capacidade de armazenamento. Consulte Volumes Efêmeros.

GA entre Kubernetes 1.23–1.24 (não podem ser desativados)

ConfigurableFSGroupPolicy, ControllerManagerLeaderMigration, CSIMigrationAzureDisk, CSIMigrationOpenStack, CSIStorageCapacity, CSIVolumeFSGroupPolicy, CSRDuration, CronJobControllerV2, DefaultPodTopologySpread, EfficientWatchResumption, ExpandCSIVolumes, ExpandInUsePersistentVolumes, ExpandPersistentVolumes, GenericEphemeralVolume, IPv6DualStack, IndexedJob, IngressClassNamespacedParams, NonPreemptingPriority, PodAffinityNamespaceSelector, PodOverhead, PreferNominatedNode, RemoveSelfLink, ServiceLBNodePortControl, ServiceLoadBalancerClass, SuspendJob, DynamicKubeletConfig, TTLAfterFinished.

Referências