Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:ACK Lingjun release notes for Kubernetes 1.22

Última actualización: Sep 04, 2026

Container Service for Kubernetes (ACK) cumple estrictamente con los términos del Certified Kubernetes Conformance Program. Este tema describe los cambios que ACK Lingjun implementa para admitir Kubernetes 1.22.

Versiones de componentes

Todos los componentes en los clústeres de ACK Lingjun se han actualizado para admitir Kubernetes 1.22.

Componente

Versión

Notas

Kubernetes

1.22.15-aliyun.1

Consulte Cambios importantes y Novedades a continuación

etcd

3.5.1

—

CoreDNS

v1.9.3.6-32932850-aliyun

Actualización sin interrupciones. Agrega monitoreo de EndpointSlice y resolución DNS IPv6

CRI

containerd 1.5.13

—

CSI

v1.26.3-fc2ba2a-aliyun

—

CNI

Terway v1.5.7

—

NVIDIA Container Runtime

3.13.0

—

Ingress controller

v1.8.0-aliyun.1

Puede interrumpir temporalmente las cargas de trabajo y causar problemas de compatibilidad. Evalúe el impacto antes de actualizar

Cambios importantes

Importante

Los siguientes cambios requieren acción antes de actualizar a Kubernetes 1.22. Omitir estos pasos puede provocar fallos en las cargas de trabajo después de la actualización.

API beta descontinuadas

Kubernetes 1.22 elimina un conjunto de API beta en favor de sus versiones estables (v1). Los recursos existentes creados mediante API beta se conservan y permanecen accesibles a través de las API estables; sin embargo, los controladores, operadores y herramientas que invoquen las versiones de API beta eliminadas dejarán de funcionar tras la actualización.

Antes de actualizar, actualice los manifiestos y los clientes de API a las versiones estables listadas en la tabla siguiente, y vuelva a desplegar los controladores y aplicaciones que utilicen las API beta eliminadas.

Las siguientes API beta están descontinuadas en Kubernetes 1.22:

Recurso

API descontinuada

API estable (utilizar en su lugar)

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 (CSR)

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

Eliminación de dockershim

dockershim, marcado como obsoleto en Kubernetes 1.20, se elimina en Kubernetes 1.22. Los clústeres que aún ejecuten Docker como entorno de ejecución de contenedores deben migrar a containerd antes de actualizar.

Pasos de migración:

  1. Calcule la cantidad de nodos nuevos necesarios según su carga de trabajo actual de Docker.

  2. Agregue al clúster nuevos nodos que ejecuten containerd durante las horas de menor actividad. Para cambiar el entorno de ejecución de contenedores de los grupos de nodos, consulte Change the container runtime from Docker to containerd.

  3. Drene los nodos Docker uno por uno. Después de cada drenaje, compruebe que todos los pods hayan migrado correctamente antes de drenar el siguiente nodo.

  4. Elimine los nodos Docker drenados una vez que no queden pods en ellos.

Cambio de comportamiento de NodePort (Kubernetes 1.22.10 y posteriores)

kube-proxy ya no escucha en los puertos de los servicios NodePort. Si el rango de puertos del servicio NodePort (configurado mediante ServiceNodePortRange en el servidor de API) se superpone con el rango de puertos efímeros definido por el parámetro del kernel net.ipv4.ip_local_port_range, las conexiones TCP pueden fallar intermitentemente, lo que provoca errores en las comprobaciones de estado y excepciones en el servicio.

Antes de actualizar a la versión 1.22.10 o posterior, compruebe que los rangos de puertos de su servicio NodePort no entren en conflicto con net.ipv4.ip_local_port_range. Para obtener orientación sobre la configuración, consulte How do I configure a proper node port range? o el PR de la comunidad de Kubernetes.

Caducidad del token de cuenta de servicio

En Kubernetes 1.22 y versiones posteriores, los tokens de cuenta de servicio tienen un periodo de validez de un año. kubelet renueva periódicamente los tokens antes de que caduquen.

  • client-go >= 11.0.0 o >= 0.15.0: Los tokens se recargan automáticamente desde el disco.

  • client-go < 11.0.0 o < 0.15.0: Los tokens no se renuevan automáticamente. Una vez que un token caduca, el acceso al servidor de API desde dentro del clúster falla. Actualice client-go a la versión 11.0.0 o posterior (o 0.15.0 o posterior) para evitar esto.

Para obtener detalles sobre los impactos y las soluciones, consulte [[Product Changes] Solutions for service account token expiration in Kubernetes 1.22 and later](t2459022.xdita#).

Otros elementos previos a la actualización

  • Cree una copia de seguridad de los datos de los nodos del plano de control: Todos los contenedores en los nodos del plano de control se recrean durante una actualización de versión. Realice una copia de seguridad de cualquier dato de contenedor antes de iniciar la actualización.

  • CVE-2022-3172: Esta vulnerabilidad puede afectar a su clúster. Revise los detalles y aplique la corrección descrita en CVE-2022-3172.

  • PodSecurityPolicy (PSP): PSP se marcó como obsoleto en Kubernetes 1.21 y se eliminará en Kubernetes 1.25. Las PSP continúan funcionando en la versión 1.22. Comience a planificar una migración al controlador de admisión PodSecurity. Para más detalles, consulte Admisión de seguridad de pods y Obsolescencia de PodSecurityPolicy: pasado, presente y futuro.

Novedades

Feature gates habilitadas de forma predeterminada

Las siguientes feature gates están habilitadas de forma predeterminada en Kubernetes 1.22 (o en versiones anteriores, según se indica).

Habilitadas desde Kubernetes 1.21:

Feature gate

Descripción

ImmutableEphemeralVolumes

Permite marcar ConfigMaps y Secrets como inmutables, lo que reduce significativamente la carga del servidor de API

IPv6DualStack

Habilita la red de doble pila IPv4/IPv6. Requiere bloques CIDR adecuados y un complemento CNI compatible con doble pila

GracefulNodeShutdown

kubelet detecta eventos de apagado del nodo y desaloja los pods dentro del periodo de gracia de apagado. Solo para nodos Linux

EfficientWatchResumption

Reanuda eficientemente la caché de vigilancia del servidor de API después de un reinicio. Útil para clústeres a gran escala

Habilitadas desde Kubernetes 1.22:

Feature gate

Descripción

CSIStorageCapacity

kube-scheduler coloca los pods en nodos con capacidad de almacenamiento suficiente para el volumen requerido

DaemonSetUpdateSurge

Utilice .spec.strategy.rollingUpdate.maxSurge para permitir pods adicionales durante las actualizaciones continuas de DaemonSet

IndexedJob

Establezca .spec.completionMode=Indexed en un Job para asignar a cada pod un índice único mediante la anotación batch.kubernetes.io/job-completion-index y la variable de entorno JOB_COMPLETION_INDEX

MemoryManager

Habilita la gestión de memoria con reconocimiento de acceso a memoria no uniforme (NUMA) para aplicaciones con requisitos de memoria garantizados. Solo para nodos Linux. ACK no configura la reserva de memoria para esta función

PodAffinityNamespaceSelector

Aplica selectores de etiquetas de afinidad de pods entre namespaces en lugar de hacerlo solo dentro del mismo namespace

PodDeletionCost

Los pods con menor utilización de recursos incurren en costos de eliminación más bajos durante la reducción de escala

PreferNominatedNode

kube-scheduler prioriza los nodos nominados; evalúa otros nodos solo si los nominados no están disponibles

ProbeTerminationGracePeriod

Establezca un valor de terminationGracePeriodSeconds a nivel de sonda o de pod para acortar el tiempo de reinicio del pod tras un fallo en la sonda de actividad

NetworkPolicyEndPort

Permite especificar rangos de puertos en las reglas de NetworkPolicy

LogarithmicScaleDown

Utiliza una selección aleatoria de pods durante la reducción de escala para disminuir el impacto de las restricciones de distribución de topología de pods

SuspendJob

Permite suspender y reanudar Jobs para gestionar su ciclo de vida con mayor flexibilidad

ServiceInternalTrafficPolicy

Dirige el tráfico interno del servicio a endpoints locales del nodo o a todos los endpoints listos del clúster

ServiceLoadBalancerClass

Personaliza la implementación del load balancer mediante .spec.loadBalancerClass

ServiceLBNodePortControl

Deshabilita la asignación de NodePort para servicios LoadBalancer al establecer .spec.allocateLoadBalancerNodePorts=false, lo que dirige el tráfico directamente a los pods

SizeMemoryBackedVolumes

Establece el tamaño de los volúmenes emptyDir respaldados por memoria mediante emptyDir.sizeLimit. Solo para nodos Linux

Server-side Apply

Rastrea cambios a nivel de campo en las configuraciones de recursos, incluidos el origen, la marca de tiempo y la operación

CSRDuration

Establece la validez del certificado al menor valor entre .spec.expirationSeconds en el CSR y --cluster-signing-duration en kube-controller-manager. El valor predeterminado de ACK para --cluster-signing-duration es de 10 años

BoundServiceAccountTokenVolume

Disponibilidad general en Kubernetes 1.22. La validez predeterminada del token de cuenta de servicio es de un año para los tokens que no se montan como volúmenes proyectados

Integración de CSI con contenedores Windows (estabilizada en 1.22):

La integración de Container Storage Interface (CSI) con contenedores Windows ahora es estable. Utilice CSI Proxy para ejecutar operaciones de almacenamiento en nodos Windows que no admiten contenedores con privilegios (como Windows Server 2019 y Windows Server versión 2004). El complemento CSI que utilice debe ser compatible con esta función. Para más detalles, consulte CSI Proxy.

Nuevas funciones

Función

Estado en ACK

Descripción

Monitoreo del estado de volúmenes

Habilitado de forma predeterminada

Detecta el estado de salud de los volúmenes persistentes (PV) aprovisionados por el complemento CSI para evitar lecturas y escrituras en volúmenes con problemas. Requiere compatibilidad con el complemento CSI. Consulte Monitoreo del estado de volúmenes

Memory QoS (cgroups v2)

Habilitado de forma predeterminada

Aplica limitación de memoria bajo contención de recursos mediante interfaces optimizadas de cgroups v2. Solo para nodos Linux. Requiere compatibilidad con el kernel del sistema operativo. Consulte Memcg QoS feature of the cgroup v1 interface

Contenedores HostProcess de Windows

Habilitado de forma predeterminada

Permite crear contenedores con privilegios de Windows mediante contenedores HostProcess. Requiere compatibilidad con el kernel del sistema operativo. Consulte Crear un pod HostProcess de Windows

Memoria swap

Deshabilitado en ACK

Ejecuta cargas de trabajo utilizando memoria swap para mejorar la estabilidad del nodo bajo contención de memoria. Solo para nodos Linux. Consulte Gestión de memoria swap

Perfiles seccomp predeterminados

Deshabilitado en ACK

Aplica el perfil seccomp RuntimeDefault de forma predeterminada. Las cargas de trabajo con menos restricciones de llamadas al sistema pueden fallar cuando esta opción está habilitada. Solo para nodos Linux

Actualizaciones de funciones

  • PodSecurityPolicy (PSP): PSP se marcó como obsoleto en Kubernetes 1.21 y se eliminará en Kubernetes 1.25. ACK proporciona políticas de seguridad de pods como alternativa. Consulte Admisión de seguridad de pods.

  • Topology Aware Hints: El campo topologyKeys se marcó como obsoleto en Kubernetes 1.21. Utilice la función Topology Aware Hints en su lugar para habilitar el enrutamiento con reconocimiento de topología de servicios. La topología de servicios está deshabilitada de forma predeterminada en los clústeres ACK 1.22. Consulte Topology Aware Hints.

Mejoras de ACK Lingjun

Observability

  • Métricas adicionales para el acceso al servidor de API de Kubernetes y los patrones de solicitud mejoran la observability del servidor de API.

  • Ahora es posible recopilar métricas clave de los componentes del plano de control desde los clústeres de ACK Lingjun.

Estabilidad

  • La protección de recursos de almacenamiento reduce la carga de etcd durante los inicios en frío.

  • La limitación de tráfico del servidor de API basada en el origen, el tipo y la ruta de la solicitud reduce la carga de etcd durante los inicios en frío.

Mejoras de rendimiento

  • kubelet: Durante las actualizaciones in situ de kubelet, el sistema evita el reinicio de pods sobre una base de mejor esfuerzo. Consulte el issue relacionado de Kubernetes.

  • kube-proxy: kube-proxy ahora es compatible con Alibaba Cloud Linux 2 (kernel 4.19.91-23 y posteriores). Cuando el modo IP Virtual Server (IPVS) está habilitado, conn_reuse_mode ya no se establece en 0. Consulte el issue relacionado de Kubernetes.

Problemas corregidos

Referencias