Notas de la versión para las versiones con soporte estándar - 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 estándar

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

nota

En el caso de 1.24 y clústeres sucesivos, las AMI de Amazon EKS publicadas oficialmente incluyen containerd como único tiempo de ejecución. Las versiones de Kubernetes inferiores a la 1.24 usan Docker como tiempo de ejecución predeterminado. Estas versiones tienen una opción de marca de arranque que puede utilizar para probar sus cargas de trabajo en cualquier clúster compatible con containerd. Para obtener más información, consulte Amazon EKS dejó de ser compatible con Dockershim.

Kubernetes 1.30

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

importante
  • A partir de la versión 1.30 o posterior de Amazon EKS, todos los grupos de nodos administrados recién creados utilizarán automáticamente Amazon Linux 2023 (AL2023) como sistema operativo de nodos de forma predeterminada. Anteriormente, los nuevos grupos de nodos utilizaban Amazon Linux 2 (AL2) de forma predeterminada. Puede seguir utilizando AL2 si lo elige como tipo de AMI cuando crea un nuevo grupo de nodos.

  • Con Amazon EKS 1.30, la etiqueta topology.k8s.aws/zone-id se añade a los nodos de trabajo. Puede usar IDs de zona de disponibilidad (AZ IDs) para determinar la ubicación de los recursos de una cuenta respecto de los recursos de otra. Para obtener más información, consulte ID de zona de disponibilidad para los recursosAWS en la Guía del usuario de AWS RAM.

  • A partir de la versión 1.30, Amazon EKS ya no incluye la anotación default en el recurso gp2 StorageClass aplicada a los clústeres recién creados. Esto no tiene ningún impacto si hace referencia a esta clase de almacenamiento por su nombre. Debe tomar medidas si confiaba en tener un StorageClass predeterminado en el clúster. Debe hacer referencia a StorageClass por su nombre gp2. Como alternativa, puede implementar la clase de almacenamiento predeterminada recomendada por Amazon EBS configurando el parámetro defaultStorageClass.enabled en true al instalar v1.31.0 o posteriormente el aws-ebs-csi-driver add-on.

  • La política de IAM mínima requerida para el rol de IAM del clúster de Amazon EKS ha cambiado. La acción ec2:DescribeAvailabilityZones es obligatoria. Para obtener más información, consulte Rol de IAM del clúster de Amazon EKS.

Para ver el registro de cambios completo de Kubernetes 1.30, consulte https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.30.md.

Kubernetes 1.29

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

importante
  • La versión de la API flowcontrol.apiserver.k8s.io/v1beta2 en desuso de FlowSchema y de PriorityLevelConfiguration ya no se ofrece en Kubernetes v1.29. Si tiene manifiestos o software cliente que utiliza el grupo de API beta en desuso, debe cambiarlos antes de actualizar a la versión v1.29.

  • El campo .status.kubeProxyVersion para los objetos de nodo ahora está en desuso y el proyecto Kubernetes propone eliminarlo en una versión futura. El campo en desuso no es preciso e históricamente ha sido gestionado por kubelet, el cual, en realidad, no conoce la versión kube-proxy ni si se ejecuta kube-proxy. Si utilizó este campo en un software cliente, deje de hacerlo; la información no es fiable y el campo está en desuso.

  • Para reducir la posible superficie expuesta a ataque, la función LegacyServiceAccountTokenCleanUp en Kubernetes 1.29 etiqueta los tokens heredados basados en secretos generados automáticamente como no válidos si no se utilizaron por mucho tiempo (1 año de forma predeterminada) y los elimina automáticamente si no se intenta usarlos por mucho tiempo después de marcarlos como no válidos (1 año adicional de forma predeterminada). Para identificar estos tokens, puede ejecutar lo siguiente:

    kubectl get cm kube-apiserver-legacy-service-account-token-tracking -nkube-system

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

Kubernetes 1.28

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

  • Kubernetes v1.28 amplió el sesgo admitido entre los componentes del nodo principal y el plano de control en una versión secundaria, de n-2 a n-3, de modo que los componentes del nodo (kubelet y kube-proxy) de la versión secundaria compatible más antigua puedan funcionar con los componentes del plano de control (kube-apiserver, kube-schedulerkube-controller-manager, cloud-controller-manager) para la versión secundaria compatible más reciente.

  • Las métricas force_delete_pods_total y force_delete_pod_errors_total de Pod GC Controller se han mejorado para que tengan en cuenta todas las eliminaciones forzosas de pods. Se ha agregado un motivo a la métrica para indicar si el pod se ha eliminado forzosamente porque se ha finalizado, ha quedado huérfano, va a finalizar con la taint fuera de servicio, o va finalizar y quedar sin programar.

  • El controlador PersistentVolume (PV) se ha modificado para que asigne automáticamente un valor predeterminado de StorageClass a cualquier PersistentVolumeClaim que no tenga definido un valor para storageClassName. Además, el mecanismo de validación de admisión de PersistentVolumeClaim del servidor de API se ha ajustado para que permita cambiar los valores de un estado no establecido a un nombre de StorageClass real.

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

Kubernetes 1.27

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

importante
  • Se ha eliminado la compatibilidad con las anotaciones de seccomp.security.alpha.kubernetes.io/pod de seccomp alfa y se eliminaron las anotaciones de container.seccomp.security.alpha.kubernetes.io. Las anotaciones seccomp alfa quedaron en desuso en 1.19, y con su eliminación en 1.27, los campos de seccomp ya no se rellenarán automáticamente para Pods con las anotaciones de seccomp. En su lugar, utilice el campo securityContext.seccompProfile para Pods o contenedores para configurar los perfiles de seccomp. Para comprobar si está utilizando las anotaciones de seccomp alfa en desuso en su clúster, ejecute el siguiente comando:

    kubectl get pods --all-namespaces -o json | grep -E 'seccomp.security.alpha.kubernetes.io/pod|container.seccomp.security.alpha.kubernetes.io'
  • Se quitó el argumento de la línea de comandos --container-runtime para kubelet. El tiempo de ejecución predeterminado del contenedor para Amazon EKS es containerd desde la versión 1.24, lo que elimina la necesidad de especificar el tiempo de ejecución del contenedor. A partir de 1.27 en adelante, Amazon EKS ignorará el argumento de --container-runtime que se pase a los scripts de arranque. Es importante que no pase este argumento a --kubelet-extra-args para evitar errores durante el proceso de arranque del nodo. Debe eliminar el argumento de --container-runtime de todos tus flujos de trabajo de creación de nodos y scripts de compilación.

  • El kubelet en Kubernetes 1.27 aumentó el valor predeterminado de kubeAPIQPS a 50 y de kubeAPIBurst a 100. Estas mejoras permiten que kubelet gestione un mayor volumen de consultas de API, lo que mejora los tiempos de respuesta y el rendimiento. Cuando las demandas de Pods aumentan, debido a los requisitos de escalamiento, los valores predeterminados revisados garantizan que kubelet pueda administrar de manera eficiente el aumento de la carga de trabajo. Como resultado, los lanzamientos de Pod son más rápidos y las operaciones del clúster son más eficaces.

  • Puede utilizar una topología de Pod más detallada para difundir políticas como minDomain. Este parámetro le permite especificar el número mínimo de dominios en los que los Pods deben estar repartidos. nodeAffinityPolicy y nodeTaintPolicy permiten un nivel adicional de granularidad en la regulación de la distribución de Pod. Esto se realiza de acuerdo con las afinidades de los nodos, taints y el campo matchLabelKeys en el topologySpreadConstraints de su especificación de Pod's. Esto permite seleccionar los Pods para la dispersión de los cálculos tras una actualización progresiva.

  • Kubernetes1.27 promovió al estado beta un nuevo mecanismo de políticas de StatefulSets que controla la vida útil de sus PersistentVolumeClaims (PVCs). La nueva política de retención de PVC le permite especificar si los PVCs generados a partir de la plantilla de especificaciones de StatefulSet se eliminará o retendrá automáticamente cuando se elimine StatefulSet o si se reducen verticalmente las réplicas que contiene StatefulSet.

  • 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.27 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.27, consulte https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.27.md#changelog-since-v1260.

Kubernetes 1.26

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

importante

Kubernetes 1.26 ya no es compatible con CRI v1alpha2. Esto hace que el kubelet deje de registrar el nodo si el tiempo de ejecución del contenedor no admite CRI v1. Esto también significa que Kubernetes 1.26 no es compatible con la versión secundaria 1.5 y anteriores de containerd. Si usa containerd, debe actualizar a la versión containerd 1.6.0 o posterior antes de actualizar cualquier nodo para Kubernetes 1.26. También debe actualizar cualquier otro entorno de ejecución de contenedor que solo admita v1alpha2. Para obtener más información, consulte al proveedor de tiempo de ejecución del contenedor. De forma predeterminada, las AMI de Amazon Linux y Bottlerocket incluyen la versión containerd 1.6.6.

  • Antes de actualizar a Kubernetes 1.26, actualice su versión Amazon VPC CNI plugin for Kubernetes a 1.12 o posterior. Si no actualiza a la versión de Amazon VPC CNI plugin for Kubernetes 1.12o posterior, el Amazon VPC CNI plugin for Kubernetes se bloqueará. Para obtener más información, consulte Trabajar con el complemento Amazon VPC CNI plugin for Kubernetes de Amazon EKS.

  • 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.26 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.26, consulte https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.26.md#changelog-since-v1250.