Utilice la documentación del clúster EKS para crear una lista de comprobación de actualización
La documentación de versiones de EKS Kubernetes incluye una lista detallada de cambios para cada versión. Cree una lista de comprobación para cada actualización.
Para obtener orientación específica sobre la actualización de la versión de EKS, revise la documentación para conocer los cambios notables y las consideraciones para cada versión.
Actualización de complementos y componentes a través de la API de Kubernetes
Antes de iniciar la actualización de un clúster, es esencial tener un conocimiento exhaustivo de las versiones de los componentes de Kubernetes en uso. Realice un inventario de los componentes del clúster, centrándose específicamente en aquellos que interactúan directamente con la API de Kubernetes. Estos componentes críticos del clúster incluyen agentes de supervisión y registro, autoescaladores de clúster, controladores de almacenamiento de contenedores (por ejemplo, EBS CSI, EFS CSI), controladores de entrada, así como cualquier otra carga de trabajo o complemento que dependa de interacciones directas con la API de Kubernetes.
Consejo profesional:
Los componentes críticos del clúster se encuentran frecuentemente dentro de espacios de nombres que terminan en *-system:
kubectl get ns | grep '-system'
Una vez que haya identificado los componentes que dependen de la API de Kubernetes, consulte su documentación para determinar la compatibilidad de versiones y los requisitos previos para la actualización. Por ejemplo, consulte la documentación de AWS Load Balancer Controller para obtener información sobre la compatibilidad de versiones. Algunos componentes pueden requerir actualizaciones o ajustes de configuración antes de proceder a la actualización de un clúster. Es imprescindible prestar especial atención a componentes críticos como CoreDNS, kube-proxy, VPC CNI y controladores de almacenamiento.
Los clústeres suelen englobar multitud de cargas de trabajo que dependen de la API de Kubernetes, esencial para funcionalidades como el control de entrada, los sistemas de entrega continua y las herramientas de supervisión. Al embarcarse en la actualización de un clúster EKS, es igualmente crucial actualizar sus complementos y herramientas de terceros, garantizando su compatibilidad sin fisuras con el entorno actualizado.
Consulte los siguientes ejemplos de complementos comunes y su documentación de actualización correspondiente:
- Amazon VPC CNI: Para conocer la versión recomendada del complemento Amazon VPC CNI para cada versión de clúster, consulte Actualización del complemento autogestionado Amazon VPC CNI para Kubernetes. Cuando se instala como complemento de Amazon EKS, solo se puede actualizar una versión menor cada vez.
- kube-proxy: Consulte Actualización del complemento autogestionado kube-proxy para Kubernetes.
- CoreDNS: Consulte Actualización del complemento autogestionado CoreDNS.
- AWS Load Balancer Controller: AWS Load Balancer Controller debe ser compatible con la versión de EKS que haya implementado. Consulte la guía de instalación para obtener más información.
- Controlador de interfaz de almacenamiento de contenedores (CSI) de Amazon Elastic Block Store (Amazon EBS): Para obtener información sobre la instalación y actualización, consulte Administración del controlador CSI de Amazon EBS como complemento de Amazon EKS.
- Controlador de interfaz de almacenamiento de contenedores (CSI) de Amazon Elastic File System (Amazon EFS): Para obtener información sobre la instalación y actualización, consulte Controlador CSI de Amazon EFS.
- Servidor de métricas de Kubernetes: Para obtener más información, consulte metrics-server en GitHub.
- Kubernetes Cluster Autoscaler: Para actualizar la versión de Kubernetes Cluster Autoscaler, cambie la versión de la imagen en el despliegue. El autoescalador de clústeres está estrechamente vinculado al programador de Kubernetes. Siempre tendrá que actualizarlo cuando actualice el clúster. Revise las versiones de GitHub para encontrar la dirección de la última versión correspondiente a su versión menor de Kubernetes.
- Karpenter: Para obtener información sobre la instalación y actualización, consulte la documentación de Karpenter.
- Ingress: Es necesario comprender realmente cómo llega el tráfico al clúster y a través de qué sistemas.
- Service mesh: ¿Estás utilizando una, qué hace y qué versión tiene? Istio puede ser un OSO para actualizar, así que si usted puede cambiar a Linkerd es probable que sea mucho más feliz en el largo plazo. Sin embargo, entender qué controla el acceso a qué namespaces y pods es crítico para una actualización feliz.
- Certificados: Por defecto caducan al año. Usted obtiene unos nuevos con cada actualización, pero también puede activar una actualización manual cada vez que con kubeadm certs renew. Si está ejecutando un clúster antiguo POR FAVOR compruebe las fechas de caducidad de sus certificados de cliente con: kubeadm certs check-expiration now.
- ¿Tienes despliegues con estado? ¿Están almacenando algo, dónde lo están almacenando y cómo los gestionas? Esto sería bases de datos, redis, colas de mensajes, aplicaciones que mantienen el estado. Suelen ser las más difíciles de mover o con las que es más difícil interactuar durante una actualización. Puede revisar las opciones para moverlos aquí. Lo más importante es establecer el presupuesto de interrupción de pods para que haya un mínimo disponible durante el proceso de actualización, como se muestra aquí.