Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:(Descontinuado) Notas de versão do ACK para Kubernetes 1.22

Última atualização: Sep 17, 2026

O ACK segue rigorosamente a conformidade da comunidade Kubernetes. Este tópico descreve as alterações na versão 1.22 do ACK Kubernetes, incluindo mudanças principais, APIs beta removidas e requisitos de atualização.

Antes de atualizar

Importante

O Kubernetes 1.22 remove permanentemente várias APIs beta. Conclua estas verificações antes de atualizar: controladores ou aplicações que chamarem APIs removidas falharão.

Ações obrigatórias:

  • Migração de API (bloqueante): O Kubernetes 1.22 remove todas as APIs v1beta1 listadas em APIs beta removidas. Migre os recursos afetados para a versão estável v1 antes de atualizar. Objetos existentes não sofrem impacto, mas controladores ou ferramentas que chamarem APIs removidas falharão.

  • Migração de runtime Docker: A remoção do Dockershim está prevista para o Kubernetes 1.24. Antes de atualizar para a versão 1.24, migre os nós de Docker para containerd usando o recurso de atualização de node pool. Em clusters dedicados, os nós mestres migram automaticamente. Como todos os containers são recriados, faça backup dos containers personalizados que exigem persistência de dados. Para nós Windows, continue usando o Docker EE devido às limitações do containerd nesse sistema operacional.

  • Sobreposição de faixa NodePort (1.22.10+): A partir do Kubernetes 1.22.10, o kube-proxy deixa de escutar nas portas de service NodePort. Se a faixa NodePort (ServiceNodePortRange no servidor de API) se sobrepor à net.ipv4.ip_local_port_range do kernel em qualquer nó, ocorrerão falhas intermitentes de conexão TCP. Isso causa falhas em health checks e interrupções de service. Verifique se não há sobreposição antes de atualizar para a versão 1.22.10 ou posterior. Consulte How do I configure the NodePort range? e o PR da comunidade Kubernetes.

  • Expiração de token de service account: Os tokens de service account têm validade padrão de um ano. Clientes nas versões client-go v11.0.0+ ou v0.15.0+ recarregam automaticamente os tokens rotacionados. Clientes mais antigos não fazem esse recarregamento automático e falham na autenticação após a expiração. Atualize o client-go se for afetado. Consulte [\[Product Change\] Resolve ServiceAccount token expiration issues in Kubernetes 1.22+](t2459022.xdita#).

  • Atualização do ingress controller: A atualização do ingress controller para a versão 1.1.0-aliyun.1 pode causar breves interrupções de service e problemas de compatibilidade de configuração. Verifique as configurações durante a atualização do componente, antes de atualizar o cluster.

  • CVE-2022-3172: Esta versão pode ser afetada pela CVE-2022-3172. Revise o impacto e as mitigações antes de atualizar.

  • Agendamento de pods em virtual nodes: A partir do Kubernetes 1.22, o agendamento de pods em virtual nodes vem ativado por padrão. Taints de virtual node, afinidade de nó no nível do pod, afinidade de pod ou restrições de distribuição de topologia afetam o agendamento. Para preservar o comportamento anterior à atualização, desative a opção Enable virtual node scheduling no kube-scheduler. Consulte Custom parameters of kube-scheduler.

  • Migração de PodSecurityPolicy (PSP): A remoção da PSP está prevista para o Kubernetes 1.25. O admission controller de segurança de pod vem ativado por padrão no ACK. Inicie a migração para fora da PSP agora. Consulte Pod Security Admission e a postagem do blog sobre a descontinuação da PodSecurityPolicy.

Versões dos componentes

Componente

Versão

Notas de versão

Kubernetes

1.22.15-aliyun.1

Consulte Antes de atualizar e Principais alterações no Kubernetes 1.22

etcd

3.5.1

Nenhuma

CoreDNS

v1.9.3.6-32932850-aliyun

Atualização sem interrupção. Novidades: suporte a watch de EndpointSlice; consultas DNS via IPv6

CRI — Docker CE

19.03.15

Nenhuma

CRI — Docker EE

Varia conforme a versão do Windows

Nenhuma

CRI — containerd

1.4.8

Nenhuma

CSI

v1.26

Nenhuma

CNI — Flannel

0.15.1.4-e02c8f12-aliyun

Atualização sem interrupção. Novidades: compatibilidade com APIVersion do Kubernetes 1.22 para Authorization e recursos similares; exposição de service HostPort; modo hairpin

CNI — Terway

—

Nenhuma

NVIDIA Container Runtime

3.7.0

Nenhuma

Ingress controller

1.1.0-aliyun.1

Pode causar breves interrupções de service e problemas de compatibilidade de configuração. Verifique as configurações antes de atualizar o cluster.

Principais alterações no Kubernetes 1.22

APIs beta removidas

Todas as versões de API v1beta1 listadas abaixo foram removidas permanentemente. Chamadas para essas APIs falham imediatamente após a atualização.

Recurso

API removida

Migrar para

MutatingWebhookConfiguration, ValidatingWebhookConfiguration

admissionregistration.k8s.io/v1beta1

admissionregistration.k8s.io/v1

CustomResourceDefinition (CRD)

apiextensions.k8s.io/v1beta1

apiextensions.k8s.io/v1

APIService

apiregistration.k8s.io/v1beta1

apiregistration.k8s.io/v1

TokenReview

authentication.k8s.io/v1beta1

authentication.k8s.io/v1

SubjectAccessReview

authorization.k8s.io/v1beta1

authorization.k8s.io/v1

CertificateSigningRequest

certificates.k8s.io/v1beta1

certificates.k8s.io/v1

Lease

coordination.k8s.io/v1beta1

coordination.k8s.io/v1

Ingress, IngressClass

networking.k8s.io/v1beta1, extensions/v1beta1

networking.k8s.io/v1

ClusterRole, ClusterRoleBinding, Role, RoleBinding

rbac.authorization.k8s.io/v1beta1

rbac.authorization.k8s.io/v1

CSIDriver, CSINode, StorageClass, VolumeAttachment

storage.k8s.io/v1beta1

storage.k8s.io/v1

PriorityClass

scheduling.k8s.io/v1beta1

scheduling.k8s.io/v1

Descontinuações

  • O Dockershim foi descontinuado e sua remoção está prevista para o Kubernetes 1.24. Consulte EP-2221 e cri-containerd. Antes de atualizar para o Kubernetes 1.24, faça a transição dos nós baseados em Docker para um runtime não-Docker:

    1. Planeje a capacidade (tipos e quantidade de instâncias) para os nós com runtime não-Docker com base na contagem de pods.

    2. Escale horizontalmente os novos nós fora dos horários de pico.

    3. Faça o drain dos nós baseados em Docker um por um. Após cada drain, verifique se os pods da aplicação se recuperaram antes de prosseguir.

    4. Remova os nós baseados em Docker após concluir o drain de todos eles.

  • Alteração no comportamento do kube-proxy para NodePort (1.22.10+): A partir do Kubernetes 1.22.10, o kube-proxy deixa de escutar nas portas de service NodePort. Se a faixa NodePort (ServiceNodePortRange) se sobrepor à net.ipv4.ip_local_port_range do kernel em qualquer nó, ocorrerão falhas intermitentes de conexão TCP. Verifique se não há sobreposição antes de atualizar. Consulte How do I configure the NodePort range? e o PR da comunidade Kubernetes.

Feature gates habilitados por padrão

Os seguintes feature gates vêm habilitados por padrão no Kubernetes 1.22.

Workloads e agendamento

  • ImmutableEphemeralVolumes: Permite marcar ConfigMaps e Secrets como imutáveis para reduzir a carga no servidor de API. Consulte Secrets e ConfigMaps.

  • DaemonSetUpdateSurge: Durante uma rolling update de DaemonSet, defina .spec.strategy.rollingUpdate.maxSurge para controlar quantos pods podem exceder a contagem desejada. Consulte Perform a rolling update on a DaemonSet.

  • IndexedJob: Defina .spec.completionMode como Indexed em um Job para atribuir a cada pod uma anotação de índice de conclusão (batch.kubernetes.io/job-completion-index) e uma variável de ambiente (JOB_COMPLETION_INDEX). Consulte Introducing Indexed Jobs.

  • SuspendJob: Suspenda e retome um Job para controlar seu ciclo de vida. Consulte Introducing suspended Jobs.

  • PodDeletionCost: Influencie a ordem de terminação de pods durante o scale-down definindo um custo de exclusão. Pods com menor utilização recebem menor custo e são encerrados primeiro. Consulte ReplicaSet.

  • PodAffinityNamespaceSelector: Políticas de afinidade de pod suportam seleção de rótulos entre namespaces, permitindo agendamento cross-namespace mais flexível. Consulte KEP-2249.

  • PreferNominatedNode: O kube-scheduler prioriza os nós nomeados e avalia outros apenas quando todos os nós nomeados forem inadequados. Consulte KEP-1923.

  • LogarithmicScaleDown: A terminação de pods é randomizada durante o scale-down para mitigar problemas de restrição de distribuição de topologia. Consulte KEP-2185.

  • ProbeTerminationGracePeriod: Configure um terminationGracePeriodSeconds no nível da probe em liveness probes para reduzir o tempo de espera antes de reiniciar um pod com falha. Consulte Configure liveness, readiness and startup probes.

Nó e runtime

  • GracefulNodeShutdown (apenas Linux): O kubelet recebe notificações de shutdown pendentes e encerra os pods gracefulmente dentro do período configurado. Consulte Graceful node shutdown.

  • MemoryManager (apenas Linux): Fornece gerenciamento de memória ciente de Non-Uniform Memory Access (NUMA) para aplicações com requisitos específicos de memória. O ACK não configura reservas de memória para este recurso. Consulte Runtime memory maps e Control CPU management policies on the node.

  • SizeMemoryBackedVolumes (apenas Linux): Defina o tamanho de volumes emptyDir baseados em memória usando emptyDir.sizeLimit para melhorar a transparência do agendamento de pods. Consulte KEP-1967.

  • Suporte a CSI para containers Windows (estável): Em sistemas operacionais sem suporte a containers privilegiados, como Windows Server 2019 e Windows Server Core 2004, os containers Windows gerenciam o armazenamento do host por meio de um proxy CSI. Requer um plugin CSI compatível. Consulte csi-proxy.

Rede

  • Dual-stack IPv4/IPv6 (IPv6DualStack): Configure blocos CIDR IPv4 e IPv6 durante a criação do cluster e instale um plugin CNI com suporte a dual-stack. Consulte IPv4/IPv6 dual-stack.

  • NetworkPolicyEndPort: Defina uma faixa de portas em uma NetworkPolicy. Consulte Network Policies.

  • ServiceInternalTrafficPolicy: Roteie o tráfego interno do Service para endpoints prontos no nó local (Local) ou em todo o cluster (Cluster). Consulte Service internal traffic policy.

  • ServiceLoadBalancerClass: Use uma implementação personalizada de balanceador de carga. Consulte Specifying the class of load balancer implementation.

  • ServiceLBNodePortControl: Desative a alocação de NodePort para Services LoadBalancer definindo .spec.allocateLoadBalancerNodePorts como false quando o tráfego for roteado diretamente para os pods. Consulte Disabling load balancer NodePort allocation.

Armazenamento

  • CSIStorageCapacity: O kube-scheduler considera a capacidade de armazenamento do nó ao agendar pods que exigem tamanhos específicos de volume. Consulte Storage Capacity.

Autenticação e API

  • EfficientWatchResumption: Caches baseados em watch são restaurados com mais eficiência após reinicializações do servidor de API, melhorando o desempenho de clusters em grande escala. Consulte KEP-1904.

  • Server-Side Apply (GA): Rastreie a origem, o horário e a operação das alterações nos campos de um recurso. Consulte Server-Side Apply.

  • BoundServiceAccountTokenVolume (GA): As service accounts montadas em pods usando volumes não projetados têm validade padrão de um ano. O kubelet rotaciona esses tokens automaticamente. Clientes nas versões client-go v11.0.0+ ou v0.15.0+ recarregam automaticamente os tokens do disco. Consulte a documentação do recurso.

  • CSRDuration: Ao enviar uma CertificateSigningRequest (CSR) com .spec.expirationSeconds, a validade do certificado corresponderá ao menor valor entre a duração solicitada e o parâmetro --cluster-signing-duration do controller manager. O padrão no ACK é 10 anos. Consulte Signers.

Novos recursos

  • Monitoramento de integridade de persistent volume (PV): Workloads podem detectar a integridade do PV, evitando leituras ou gravações em volumes defeituosos. Habilitado por padrão no ACK. Requer suporte do plugin CSI. Consulte Volume Health Monitoring.

  • Quality of Service (QoS) de memória baseada em cgroup v2: Diferente da CPU, a memória não pode sofrer throttling quando os recursos estão restritos. A comunidade do kernel Linux otimizou o cgroup v2 para throttling de memória. Habilitado por padrão no ACK em nós Linux com kernel suportado. Consulte memcg QoS feature of the cgroup v1 interface e 2570-memory-qos.

  • Containers Windows HostProcess: Execute containers privilegiados em nós Windows. Habilitado por padrão no ACK. Requer suporte do sistema operacional. Consulte What's new for Windows containers on Windows Server 2022 e Create a Windows HostProcess pod.

  • Memória swap do nó (desabilitado por padrão): Workloads podem usar a memória swap do nó, o que é útil para aplicações otimizadas para swap ou para melhorar a estabilidade do nó sob pressão de memória. Apenas Linux. Desabilitado por padrão no ACK. Consulte Swap memory management e KEP-2400.

  • Perfil seccomp padrão (desabilitado por padrão): Configure um perfil seccomp padrão para todos os workloads. Aplica RuntimeDefault quando habilitado. Desabilitado por padrão no ACK porque alguns workloads exigem menos restrições de syscall. Apenas Linux. Consulte Enable the use of RuntimeDefault as the default seccomp profile for all workloads.

Substituições de recursos

  • PodSecurityPolicy (PSP) substituída pelo admission controller de segurança de pod: A PSP foi descontinuada e sua remoção está prevista para o Kubernetes 1.25. O admission controller de segurança de pod vem habilitado por padrão no ACK. Migre os recursos da PSP no Kubernetes 1.22. Consulte Pod Security Admission e a postagem do blog sobre a descontinuação da PodSecurityPolicy.

  • ServiceTopology substituído por Topology Aware Hints: O campo ServiceTopology (topologyKeys em um Service) foi descontinuado e substituído por Topology Aware Hints. Desabilitado por padrão no ACK. Se estiver habilitado, ative o Topology Aware Hints no Kubernetes 1.22 e migre. Consulte Topology Aware Hints.

Melhorias do ACK para Kubernetes 1.22

Observabilidade

  • Métricas adicionais de requisições de acesso ao servidor de API.

  • Clusters ACK Pro, ACK Serverless Pro e ACK Edge Pro agora expõem métricas essenciais dos componentes do plano de controle.

Estabilidade

As seguintes melhorias aplicam-se a todos os tipos de cluster:

  • Proteção da camada de armazenamento para reduzir o impacto no etcd durante cold starts.

  • Throttling de tráfego do servidor de API por origem, tipo ou rota da requisição para reduzir o impacto durante cold starts.

Otimizações de desempenho

Correções de bugs

Referências