Revisión de las notas de la versión para las versiones de Kubernetes con soporte extendido - Amazon EKS

Ayude a mejorar esta página

Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.

Revisión de las notas de la versión para las versiones de Kubernetes con soporte extendido

Amazon EKS ofrece soporte para las versiones de Kubernetes durante más tiempo que el soporte ofrecido por la versión original de Kubernetes, con soporte estándar para versiones menores de Kubernetes durante 14 meses a partir de su lanzamiento en Amazon EKS y soporte extendido para versiones menores de Kubernetes por 12 meses adicionales (un total de 26 meses por versión).

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.29

Kubernetes 1.29 ya se encuentra disponible en Amazon EKS. Para obtener más información acerca de 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 la versión 1.29 de Kubernetes. Si tiene manifiestos o software de cliente que utiliza el grupo de API beta en desuso, debe cambiarlos antes de actualizar a la versión 1.29.

  • El campo .status.kubeProxyVersion para los objetos de nodo ahora está en desuso y el proyecto de Kubernetes propone eliminarlo en una versión futura. El campo obsoleto no es preciso e históricamente ha sido administrado 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.

  • En Kubernetes 1.29, para reducir la posible superficie expuesta a ataques, la característica LegacyServiceAccountTokenCleanUp etiqueta los tokens heredados basados en secretos generados automáticamente como no válidos si no se utilizaron durante 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 -n kube-system

Para completar el registro de cambios 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 se encuentra disponible en Amazon EKS. Para obtener más información acerca de 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-scheduler, kube-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 a 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 completar el registro de cambios 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 se encuentra disponible en Amazon EKS. Para obtener más información acerca de 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 los 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.

  • Kubernetes 1.27 promovió al estado beta un nuevo mecanismo de políticas para 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 completar el registro de cambios de Kubernetes 1.27, consulte https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.27.md#changelog-since-v1260.