Notas de la versión para las versiones con soporte extendido - Amazon EKS

Ayude a mejorar esta página

¿Quiere contribuir a esta guía del usuario? Desplácese hasta el final de esta página y seleccione Editar esta página en GitHub. Sus contribuciones ayudarán a que nuestra guía del usuario sea mejor para todos.

Notas de la versión para las versiones con soporte extendido

En este tema se detallan cambios importantes que debe conocer sobre cada versión de Kubernetes con soporte extendido. Al actualizar, revise detenidamente los cambios que haya habido entre la versión antigua y la nueva de su clúster.

Kubernetes 1.25

Kubernetes 1.25 ya está disponible en Amazon EKS. Para obtener más información sobre Kubernetes 1.25, consulte el anuncio del lanzamiento oficial.

importante
  • A partir de la versión 1.25 de Kubernetes, ya no podrá utilizar instancias P2 de Amazon EC2 con las AMI de Amazon Linux aceleradas y optimizadas de Amazon EKS listas para usar. Estas AMI para las versiones 1.25 o posteriores de Kubernetes serán compatibles con controladores de la serie NVIDIA 525 o posteriores, que son incompatibles con las instancias P2. Sin embargo, los controladores de la serie NVIDIA 525 o posteriores son compatibles con las instancias P3, P4 y P5, de modo que puede utilizarlas con las AMI para la versión 1.25 o posterior de Kubernetes. Antes de que sus clústeres de Amazon EKS se actualicen a la versión 1.25, migre todas las instancias P2 a instancias P3, P4 y P5. También debe actualizar sus aplicaciones de manera proactiva para que funcionen con la serie NVIDIA 525 o posterior. Tenemos previsto volver a portar los controladores más recientes de la serie NVIDIA 525 o posteriores a las versiones 1.23 y 1.24 de Kubernetes a finales de enero de 2024.

  • PodSecurityPolicy (PSP) se elimina en 1.25 de Kubernetes. PSPs se sustituyen por los estándares Pod Security Admission (PSA) y Pod Security (PSS). PSA es un controlador de admisión integrado que implementa los controles de seguridad que se describen en los PSS. PSA y PSS se gradúan como estables en 1.25 de Kubernetesy están habilitados en Amazon EKS de forma predeterminada. Si tiene PSPs en el clúster, asegúrese de migrar de PSP a PSS de Kubernetes integrado o a una solución de política como código antes de actualizar el clúster a la versión 1.25. Si no realizas la migración desde PSP, es posible que se produzcan interrupciones en las cargas de trabajo. Para obtener más información, consulte Preguntas frecuentes sobre la eliminación (PSP) de políticas de seguridad de pods.

  • La versión 1.25 de Kubernetes contiene cambios que alteran el comportamiento de una característica existente conocida como Prioridad y Equidad de la API (APF). El APF sirve para proteger al servidor API de una posible sobrecarga durante los períodos de mayor volumen de solicitudes. Para ello, restringe el número de solicitudes simultáneas que se pueden procesar en un momento dado. Esto se logra mediante la aplicación de distintos niveles de prioridad y límites a las solicitudes que se originan en diversas cargas de trabajo o usuarios. Este enfoque garantiza que las aplicaciones críticas o las solicitudes de alta prioridad reciban un trato preferencial y, al mismo tiempo, evita que las solicitudes de menor prioridad sobrecarguen el servidor de API. Para obtener más información, consulte Prioridad y equidad de la API en la documentación de Kubernetes o Prioridad y equidad de la API en la Guía de prácticas recomendadas de EKS.

    Estas actualizaciones se introdujeron en PR #10352 y PR #118601. Anteriormente, APF trataba todos los tipos de solicitudes de manera uniforme, y cada solicitud consumía una sola unidad del límite de solicitudes simultáneas. El cambio de comportamiento de la APF asigna unidades de concurrencia más altas a solicitudes de LIST debido a la carga excepcionalmente pesada que estas solicitudes suponen para el servidor de API. El servidor de API estima la cantidad de objetos que devolverá una solicitud de LIST. Asigna una unidad de concurrencia que es proporcional al número de objetos devueltos.

    Al actualizar a la versión 1.25 de Amazon EKS o superior, este comportamiento actualizado puede provocar cargas de trabajo con solicitudes de LIST pesadas (que anteriormente funcionaban sin problemas) para encontrar una limitación de velocidad. Esto se indicaría mediante un código de respuesta HTTP 429. Para evitar posibles interrupciones en la carga de trabajo debido a que las solicitudes de LIST tienen una tarifa limitada, le recomendamos encarecidamente que reestructure sus cargas de trabajo para reducir la frecuencia de estas solicitudes. También puede solucionar este problema ajustando la configuración de APF para asignar más capacidad a las solicitudes esenciales y, al mismo tiempo, reducir la capacidad asignada a las no esenciales. Para obtener más información sobre estas técnicas de mitigación, consulte Prevención de solicitudes abandonadas en la Guía de prácticas recomendadas de EKS.

  • 1.25 de Amazon EKS incluye mejoras en la autenticación de clústeres que contienen bibliotecas de YAML actualizadas. Si un valor de YAML en el ConfigMap de aws-auth que se encuentra en el espacio de nombres de kube-system comienza con una macro, en la que el primer carácter es una llave, debe añadir comillas (“ ”) antes y después de las llaves ({ }). Esto es necesario para garantizar que v0.6.3 versión aws-iam-authenticator analice con precisión elConfigMap de aws-auth en 1.25 de Amazon EKS.

  • La versión beta de la API (discovery.k8s.io/v1beta1) de EndpointSlice quedó obsoleta en 1.21 de Kubernetes y ya no se ofrece desde 1.25 de Kubernetes. Esta API se ha actualizado a discovery.k8s.io/v1. Para obtener más información, consulte EndpointSlice en la documentación del Kubernetes. El v2.4.6 de AWS Load Balancer Controller y el anterior utilizaban el punto de conexión de v1beta1 para comunicarse con EndpointSlices. Si utiliza la configuración EndpointSlices para el AWS Load Balancer Controller, debe actualizar a la v2.4.7 de AWS Load Balancer Controller antes de actualizar el clúster de Amazon EKS a 1.25. Si actualiza a 1.25 mientras usa la configuración de EndpointSlices para el AWS Load Balancer Controller, el controlador se bloqueará y provocará interrupciones en las cargas de trabajo. Para actualizar el controlador, consulte ¿Qué es el AWS Load Balancer Controller?.

  • SeccompDefault se promueve a beta en 1.25 de Kubernetes. Al establecer el indicador de --seccomp-default al configurar kubelet, el tiempo de ejecución del contenedor usa su perfil seccomp de RuntimeDefault, en lugar del modo no confinado (seccomp disabled). Los perfiles predeterminados proporcionan un conjunto sólido de valores predeterminados de seguridad y, al mismo tiempo, preservan la funcionalidad de la carga de trabajo. Aunque este indicador está disponible, Amazon EKS no lo habilita de forma predeterminada, por lo que el comportamiento de Amazon EKS permanece prácticamente sin cambios. Si lo desea, puede empezar a habilitarlo en sus nodos. Para obtener más información, consulte el tutorial Restringir las llamadas de sistema de un contenedor con seccomp en la documentación de Kubernetes.

  • Se ha eliminado de 1.24 de Kubernetes y posteriores la compatibilidad con la interfaz de tiempo de ejecución de contenedores (CRI) para Docker (también conocida como Dockershim). El único tiempo de ejecución de contenedores en AMIs oficial de Amazon EKS oficial para clústeres 1.24 de Kubernetes y posteriores es containerd. Antes de pasar a 1.24 de Amazon EKS o a una versión más nueva, elimine cualquier referencia a los indicadores del script de arranque que ya no sean compatibles. Para obtener más información, consulte Amazon EKS dejó de ser compatible con Dockershim.

  • La compatibilidad con consultas comodín quedó obsoleta en 1.8.7 de CoreDNS y se eliminó en 1.9 de CoreDNS. Esto se hizo como medida de seguridad. Las consultas comodín ya no funcionan y devuelven NXDOMAIN en lugar de una dirección IP.

  • La opción goaway-chance del servidor de API de Kubernetes ayuda a evitar que las conexiones de los clientes HTTP/2 se bloqueen en una única instancia del servidor de API, al cerrar una conexión de forma aleatoria. Cuando se cierre la conexión, el cliente intentará volver a conectarse y es probable que aterrice en un servidor de API diferente como resultado del equilibrador de carga. La versión 1.25 de Amazon EKS tiene el indicador goaway-chance activado. Si su carga de trabajo que se ejecuta en el clúster de Amazon EKS utiliza un cliente que no es compatible con HTTP GOAWAY, le recomendamos que actualice su cliente para manejar GOAWAY volviendo a conectarse al finalizar la conexión.

Para ver el registro de cambios completo de Kubernetes 1.25, consulte https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.25.md#changelog-since-v1240.

Kubernetes 1.24

Kubernetes 1.24 ya está disponible en Amazon EKS. Para obtener más información sobre Kubernetes 1.24, consulte el anuncio del lanzamiento oficial.

importante
  • A partir de las versión 1.24 de Kubernetes, las nuevas API beta no están habilitadas en los clústeres de forma predeterminada. De forma predeterminada, las API beta existentes y las nuevas versiones de las API beta existentes siguen habilitadas. Amazon EKS sigue el mismo comportamiento que en la versión anterior 1.24 de Kubernetes. Las puertas de características que controlan las nuevas características para las operaciones de API nuevas y existentes están habilitadas de forma predeterminada. Esto está alineado con la versión anterior de Kubernetes. Para obtener más información, consulte KEP-3136: Beta APIs Are Off by Default (KEP-3136: las API beta están desactivadas de forma predeterminada) en GitHub.

  • Se ha eliminado la compatibilidad con la interfaz de tiempo de ejecución de contenedores (CRI) para Docker (también conocida como Dockershim) de Kubernetes 1.24. Las AMI oficiales de Amazon EKS tienen containerd como único tiempo de ejecución. Antes de pasar a Amazon EKS 1.24 o a una versión superior, debe eliminar cualquier referencia a los indicadores del script de arranque que ya no sean compatibles. También debe asegurarse de que el reenvío de IP esté habilitado para sus nodos de trabajo. Para obtener más información, consulte Amazon EKS dejó de ser compatible con Dockershim.

  • Si ya ha configurado Fluentd configurado para Container Insights, debe migrar Fluentd a Fluent Bit antes de actualizar su clúster. Los analizadores de Fluentd están configurados para analizar únicamente los mensajes de registro en formato JSON. A diferencia de dockerd, el tiempo de ejecución del contenedor containerdcontiene mensajes de registro que no están en formato JSON. Si no migra a Fluent Bit, algunos de los analizadores de Fluentd's configurados generarán una enorme cantidad de errores dentro del contenedor de Fluentd. Para enviar registros a CloudWatch Logs, consulte Configurar Fluent Bit como DaemonSet para enviar registros a CloudWatch Logs.

  • En la versión 1.23 de Kubernetes y anteriores, los certificados de servicio de kubelet con nombres alternativos de asunto (SAN) de IP y DNS no verificables se emitían automáticamente con SAN no verificables. Estas SAN no verificables se omiten del certificado aprovisionado. En los clústeres de versiones 1.24 y posteriores, no se emiten certificados de servicio de kubelet si no se puede verificar alguna SAN. Esto impide que los comandos exec de kubectl y registros de kubectl funcionen. Para obtener más información, consulte Consideraciones sobre la firma de certificados antes de actualizar el clúster a la versión 1.24 de Kubernetes.

  • Al actualizar un clúster de Amazon EKS 1.23 que utilice Fluent Bit, debe asegurarse de que k8s/1.3.12 esté en ejecución o en una versión posterior. Para ello, vuelva a aplicar el último archivo YAML Fluent Bit aplicable desdeGitHub. Para obtener más información, consulte Configurar Fluent Bit en la Guía del usuario de Amazon CloudWatch.

  • Puede utilizar las sugerencias de reconocimiento de topología para indicar su preferencia de mantener el tráfico en la zona cuando los nodos de trabajo del clúster se implementen en varias zonas de disponibilidad. El enrutamiento del tráfico dentro de una zona puede ayudar a reducir los costos y mejorar el rendimiento de la red. De forma predeterminada, las sugerencias con reconocimiento de topología están habilitadas en Amazon EKS 1.24. Para obtener más información, consulte las sugerencias con reconocimiento de topología en la documentación de Kubernetes.

  • La eliminación de PodSecurityPolicy (PSP) está programada en Kubernetes 1.25. Las PSPs están siendo reemplazados por Pod Security Admission (PSA). La PSA es un controlador de admisión integrado que utiliza los controles de seguridad que se describen en Pod Security Standards (PSS). Tanto PSA como PSS son características beta y están habilitadas en Amazon EKS de forma predeterminada. Para hacer frente a la eliminación de PSP en la versión 1.25, le recomendamos que implemente PSS en Amazon EKS. Para obtener más información, consulte Implementing Pod Security Standards in Amazon EKS (Implementación de estándares de seguridad para módulos en Amazon EKS) en el blog de AWS.

  • La credencial exec de client.authentication.k8s.io/v1alpha1 se elimina en Kubernetes 1.24. La credencial exec API estaba generalmente disponible en Kubernetes 1.22. Si utiliza un complemento de credenciales client-go que se basa en la API v1alpha1, póngase en contacto con el distribuidor de su complemento para saber cómo migrar a la API v1.

  • Para Kubernetes 1.24, contribuimos con una característica al proyecto del escalador automático de clústeres que simplifica el escalado de los grupos de nodos administrados de Amazon EKS a cero nodos y desde cero nodos. Anteriormente, para que el escalador automático de clústeres entendiera los recursos, las etiquetas y las taints de un grupo de nodos administrado que se escalaba a cero nodos, había que etiquetar el grupo subyacente de Amazon EC2 Auto Scaling con los detalles de los nodos de los que era responsable. Ahora, cuando no hay nodos en ejecución en el grupo de nodos administrado, el escalador automático de clústeres llama a la operación de API DescribeNodegroup de Amazon EKS. Esta operación de API proporciona la información que el escalador automático de clústeres requiere sobre los recursos, las etiquetas y las taints del grupo de nodos administrado. Esta característica requiere que agregue el permiso eks:DescribeNodegroup a la política de IAM de la cuenta de servicio del escalador automático de clústeres. Cuando el valor de una etiqueta de escalador automático de clústeres del grupo de escalado automático que alimenta un grupo de nodos administrado por Amazon EKS entra en conflicto con el propio grupo de nodos, el escalador automático de clústeres prefiere el valor de la etiqueta de grupo de escalado automático. Esto es para que se puedan anular los valores según sea necesario. Para obtener más información, consulte Escalado automático.

  • Si tiene la intención de utilizar los tipos de instancias Inferentia o Trainium con Amazon EKS 1.24, debe actualizar a la versión 1.9.3.0 o posterior del complemento del dispositivo AWS Neuron. Para obtener más información, consulte la versión [1.9.3.0] de Neuron K8 en la documentación de AWS Neuron.

  • Containerd tiene la opción IPv6 activada para Pods, de forma predeterminada. Aplica la configuración del núcleo del nodo a los espacios de nombres de la red del Pod. Por este motivo, los contenedores de un Pod se enlazan a las direcciones de bucle IPv4 (127.0.0.1) y IPv6 (::1). IPv6 es el protocolo de comunicación predeterminado. Antes de actualizar el clúster a la versión 1.24, le recomendamos que pruebe los Pods de varios contenedores. Modifique las aplicaciones para que puedan enlazarse a todas las direcciones IP en las interfaces de bucle invertido. La mayoría de las bibliotecas permiten el enlace de IPv6, que es compatible con versiones anterioresIPv4. Si no es posible modificar el código de la aplicación, tiene dos opciones:

    • Ejecute un contenedor de init y configure disable ipv6 a true (sysctl -w net.ipv6.conf.all.disable_ipv6=1).

    • Configure un webhook de admisión mutante para insertar un contenedor de init junto con los Pods de su aplicación.

    Si necesita bloquear IPv6 para los Pods de todos los nodos, puede que tenga que deshabilitar IPv6 en sus instancias.

  • La opción goaway-chance del servidor de API de Kubernetes ayuda a evitar que las conexiones de los clientes HTTP/2 se bloqueen en una única instancia del servidor de API, al cerrar una conexión de forma aleatoria. Cuando se cierre la conexión, el cliente intentará volver a conectarse y es probable que aterrice en un servidor de API diferente como resultado del equilibrador de carga. La versión 1.24 de Amazon EKS tiene el indicador goaway-chance activado. Si su carga de trabajo que se ejecuta en el clúster de Amazon EKS utiliza un cliente que no es compatible con HTTP GOAWAY, le recomendamos que actualice su cliente para manejar GOAWAY volviendo a conectarse al finalizar la conexión.

Para ver el registro de cambios completo de Kubernetes 1.24, consulte https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.24.md#changelog-since-v1230.

Kubernetes 1.23

Kubernetes 1.23 ya está disponible en Amazon EKS. Para obtener más información sobre Kubernetes 1.23, consulte el anuncio del lanzamiento oficial.

importante
  • La característica de migración de volumen en árbol a la interfaz de almacenamiento de contenedores (CSI) de Kubernetes está habilitada. Esta característica permite reemplazar los complementos de almacenamiento en árbol de Kubernetes para Amazon EBS con el controlador CSI de Amazon EBS correspondiente. Para obtener más información, consulte 1.17 Feature: Kubernetes In-Tree to CSI Volume Migration Moves to Beta (Característica 1.17 de Kubernetes: la migración del volumen en árbol a CSI de Kubernetes pasa a versión beta) en el blog de Kubernetes.

    La característica traduce las API del árbol a API de CSI equivalentes y delega las operaciones a un controlador de CSI de reemplazo. Con esta característica, si utiliza los objetos StorageClass, PersistentVolume y PersistentVolumeClaim existentes que pertenecen a estas cargas de trabajo, es probable que no haya ningún cambio notable. La característica permite que Kubernetes delegue todas las operaciones de administración de almacenamiento del complemento en árbol al controlador de CSI. Si utiliza volúmenes de Amazon EBS en un clúster existente, instale el controlador CSI de Amazon EBS en el clúster antes de actualizar el clúster a la versión 1.23. Si no instala el controlador antes de actualizar un clúster existente, es posible que se produzcan interrupciones en las cargas de trabajo. Si va a implementar cargas de trabajo que utilizan volúmenes de Amazon EBS en un clúster 1.23 nuevo, instale el controlador CSI de Amazon EBS en el clúster antes de implementar las cargas de trabajo en el clúster. Para obtener instrucciones acerca de cómo instalar el controlador de CSI de Amazon EBS en su clúster, consulte Controlador CSI de Amazon EBS. Para conocer las preguntas frecuentes acerca de la característica de migración, consulte Preguntas frecuentes sobre migración de CSI de Amazon EBS.

  • El soporte extendido para las AMI de Windows optimizadas para Amazon EKS que sean publicadas por AWS no está disponible para la versión 1.23 de Kubernetes; sin embargo, no está disponible para la versión 1.24 o una posterior de Kubernetes.

  • Kubernetes dejó de admitir dockershim en versión 1.20 y eliminamos dockershim en versión 1.24. Para obtener más información, consulte Kubernetes deja atrás Dockershim: compromisos y pasos siguientes en el blog de Kubernetes. Amazon EKS pondrá fin a la compatibilidad para dockershim a partir de la versión 1.24 de Amazon EKS. A partir de la versión 1.24 de Amazon EKS, las AMI oficiales de Amazon EKS tendrán containerd como único tiempo de ejecución.

    Si bien la versión 1.23 de Amazon EKS sigue admitiendo dockershim, le recomendamos que empiece a probar sus aplicaciones ahora para identificar y eliminar cualquier dependencia de Docker. De esta forma, estará preparado para actualizar el clúster a la versión 1.24. Para obtener más información acerca de la eliminación de dockershim, consulte Amazon EKS dejó de ser compatible con Dockershim.

  • Kubernetes graduó las redes de doble pila de IPv4/IPv6 para Pods, servicios y nodos a disponibilidad general. Sin embargo, Amazon EKS y el Amazon VPC CNI plugin for Kubernetes no admiten redes de doble pila. Los clústeres pueden asignar direcciones IPv4 o IPv6 a los Pods y los servicios, pero no se pueden asignar ambos tipos de direcciones.

  • Kubernetes graduó la característica de admisión de seguridad del pod (PSA) a beta. La característica está habilitada de forma predeterminada. Para obtener más información, consulte Pod Security Admission (Admisión de seguridad del pod) en la documentación de Kubernetes. La PSA reemplaza el controlador de admisión de Pod Security Policy (PSP). El controlador de admisión de PSP no es compatible y está programado su eliminación en Kubernetes versión 1.25.

    El controlador de admisión de PSP hace cumplir los estándares de seguridad de Pod en Pods en un espacio de nombres basado en etiquetas de espacio de nombres específicas que establecen el nivel de cumplimiento. Para obtener más información, consulte Estándares de seguridad del pod (PSS) y admisión de seguridad del pod (PSA) en la guía de prácticas recomendadas de Amazon EKS.

  • La imagen de kube-proxy implementada con clústeres ahora es la imagen base mínima mantenida por Amazon EKS Distro (EKS-D). La imagen contiene paquetes mínimos y no tiene administradores de paquetes ni intérpretes de comandos.

  • Kubernetes graduó contenedores efímeros a beta. Los contenedores efímeros son contenedores temporales que se ejecutan en el mismo espacio de nombres que un Pod existente. Puede usarlos para observar el estado de los Pods y los contenedores con fines de solución de problemas y depuración. Esto resulta especialmente útil para solucionar problemas interactivos cuando kubectl exec es insuficiente porque se ha bloqueado un contenedor o una imagen de contenedor no incluye utilidades de depuración. Un ejemplo de contenedor que incluye una utilidad de depuración es distroless images (Imágenes distroless). Para obtener más información, consulte Depuración con un contenedor de depuración efímero en la documentación de Kubernetes.

  • Kubernetes graduó la API de HorizontalPodAutoscaler autoscaling/v2 estable de disponibilidad general. La API HorizontalPodAutoscaler autoscaling/v2beta2 ha quedado obsoleta. No estará disponible en 1.26.

  • La opción goaway-chance del servidor de API de Kubernetes ayuda a evitar que las conexiones de los clientes HTTP/2 se bloqueen en una única instancia del servidor de API, al cerrar una conexión de forma aleatoria. Cuando se cierre la conexión, el cliente intentará volver a conectarse y es probable que aterrice en un servidor de API diferente como resultado del equilibrador de carga. La versión 1.23 de Amazon EKS tiene el indicador goaway-chance activado. Si su carga de trabajo que se ejecuta en el clúster de Amazon EKS utiliza un cliente que no es compatible con HTTP GOAWAY, le recomendamos que actualice su cliente para manejar GOAWAY volviendo a conectarse al finalizar la conexión.

Para ver el registro de cambios completo de Kubernetes 1.23, consulte https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.23.md#changelog-since-v1220.