Actualización de clústeres, nodos trabajadores y componentes de clúster
Mantén tu clúster seguro y con soporte técnico actualizando el nodo maestro, los nodos de trabajo y los componentes del clúster en el orden correcto. Actualizar fuera de secuencia puede provocar fallos por discrepancias entre versiones o tiempos de inactividad inesperados.
Realiza las actualizaciones en el siguiente orden:
- Actualiza el nodo maestro del clúster.
- Actualiza tus nodos de trabajo — Classic, VPC o Satellite — según tu tipo de infraestructura. ¿No sabes qué tipo tienes? En la consola de IBM Cloud, haz clic en tu clúster y comprueba el campo Infraestructura en la pestaña Descripción general: mostrará Classic, VPC o Satellite.
- Actualice los componentes del clúster, como los servidores de aplicación de IBM Cloud ( Fluentd ) y los ALB de Ingress, si los gestiona manualmente.
- Actualizar los complementos gestionados.
Actualización del nodo maestro
- ¿Cómo sé cuándo debo actualizar el archivo maestro?
- Se le notificará en la consola, los anuncios y la CLI cuando haya actualizaciones disponibles. También puede comprobar periódicamente la página de versiones soportadas.
- ¿Cuántas versiones por detrás de la última puede estar el archivo maestro?
- Solo puedes actualizar el servidor de la API a la versión inmediatamente superior a la actual (
n+1). - ¿Pueden mis nodos de trabajo ejecutar una versión posterior a la del nodo maestro?
- Los nodos de trabajador no pueden ejecutar una versión de Kubernetes
major.minorposterior a la del maestro. Además, tus nodos de trabajo solo pueden estar hasta dos versiones menores por detrás de la versión maestra (n-2). En primer lugar, actualiza tu versión maestra a la última versión de Kubernetes. Luego actualice los nodos trabajadores del clúster.
Los nodos trabajadores pueden ejecutar versiones posteriores del parche que el maestro, como versiones de parches específicas de los nodos trabajadores para las actualizaciones de seguridad.
- ¿Cómo se aplican las actualizaciones de parches?
- De forma predeterminada, las actualizaciones de parches para el nodo maestro se aplican automáticamente durante el curso de varios días, por lo que una versión de parche maestro podría aparecer como disponible antes de que se aplique a su
nodo maestro. La automatización de actualizaciones también pasa por alto los clústeres que no están en buen estado o que tienen operaciones actualmente en curso. Ocasionalmente, IBM podría inhabilitar las actualizaciones automáticas para
un fixpack maestro específico, como un parche que solo sea necesario si se actualiza un nodo maestro de una versión menor a otra. En cualquiera de estos casos, puedes consultar el Kubernetes Información sobre la versión para ver si hay algún impacto potencial y optar por utilizar el tú mismo
ibmcloud ks cluster master updatecomando de forma segura sin esperar a que se aplique la actualización automática.
A diferencia de lo que sucede con el nodo maestro, debe actualizar los nodos trabajadores para cada versión de parche.
- ¿Qué ocurre durante la actualización maestra?
- El nodo maestro está altamente disponible con tres pods de maestro de réplica. Los pods del nodo maestro tienen una actualización continua, durante la cual solo hay un pod que no está disponible al mismo tiempo. Dos instancias están activas y en ejecución para que pueda acceder y cambiar el clúster durante la actualización. Sus nodos trabajadores, apps y recursos continúan en ejecución.
- ¿Puedo revertir la actualización?
- No, no puede retrotraer un clúster a una versión anterior después de realizar el proceso de actualización. Asegúrese de utilizar un clúster de prueba y siga las instrucciones para abordar posibles problemas antes de actualizar el nodo maestro de producción.
- ¿Qué proceso debo seguir para actualizar el archivo maestro?
- El diagrama siguiente muestra el proceso que puede realizar para actualizar el maestro.
Pasos para actualizar el nodo maestro del clúster
Antes de empezar, asegúrate de que dispones del rol de acceso a la plataforma IAM Operador o Administrador. Si no estás seguro de cuál es tu rol de acceso, ve a Gestionar → Acceso (IAM) → Usuarios en la consola de IBM Cloud, o pregunta al administrador de tu cuenta.
Si se está llevando a cabo una rotación de certificados de una autoridad de certificación (CA), la actualización maestra queda bloqueada hasta que finalice la rotación. Comprueba el estado de cualquier rotación en curso antes de empezar.
Para actualizar la versión principal o menor del maestro de Kubernetes:
-
Revisa la información sobre la versión de Kubernetes y realiza las actualizaciones marcadas como Actualizar antes que master.
-
Revisa cualquier advertencia útil de Kubernetes, como los avisos de obsolescencia.
-
Compruebe que la actualización de la versión del clúster no tenga consecuencias para los complementos y plugins instalados en el clúster.
-
Comprobación de complementos
- Obtenga una lista de los complementos en el clúster.
ibmcloud ks cluster addon ls --cluster CLUSTER - Compruebe la versión de Kubernetes soportada para cada complemento instalado.
ibmcloud ks addon-versions - Si el complemento debe actualizarse para que se ejecute en la versión de Kubernetes a la que desea actualizar el clúster, actualice el complemento.
- Obtenga una lista de los complementos en el clúster.
-
Comprobación de plug-ins
- En el catálogo de Helm, busca los complementos que has instalado en tu clúster.
- En el menú lateral, expanda la sección SOURCES & TAR FILE.
- Descargue y abra el código fuente.
- Compruebe los archivos
README.mdoRELEASENOTES.mdpara las versiones soportadas. - Si el plugin debe actualizarse para que se ejecute en la versión de Kubernetes a la que desea actualizar el clúster, actualice el plugin siguiendo las instrucciones del plugin.
-
-
Actualiza tu servidor API y los componentes principales asociados utilizando el IBM Cloud consola o ejecutando la CLI.
ibmcloud ks cluster master updatecomando -
Espere unos minutos y luego confirme que la actualización se ha completado. Revise la versión del servidor de API en el panel de control de IBM Cloud o ejecutando
ibmcloud ks cluster ls. -
Instale la versión de
kubectl clique coincida con la versión del servidor de API que se ejecuta en el maestro. Kubernetes no admite versiones de clientekubectlque difieran en dos o más versiones respecto a la versión del servidor (n ± 2). Para actualizar tu configuración local, ejecutaibmcloud ks cluster config -c CLUSTER_NAME_OR_ID, y a continuación compruébalo conkubectl version --client.
Cuando se haya completado la actualización del nodo maestro, actualiza tus nodos de trabajo. El método depende del tipo de infraestructura que tengas:
- Actualización de nodos de trabajo clásicos: utiliza una actualización progresiva controlada mediante un ConfigMap y el comando
worker update. - Actualización de los nodos de trabajo de VPC: los nodos de trabajo VPC VSI y los nodos de trabajo VPC bare metal deben utilizar
worker replace --update. El procedimiento de actualización progresiva de ConfigMap aún no es compatible con los nodos de trabajo de VPC.
Actualización de nodos trabajadores clásicos
Los nodos de trabajo de la infraestructura clásica realizan una actualización progresiva in situ. Las actualizaciones se controlan mediante una política de disponibilidad ( Kubernetes, ConfigMap ) que define cuántos nodos pueden estar indisponibles
al mismo tiempo. El comando ibmcloud ks worker update solo es compatible con los nodos de trabajo clásicos.
Puedes realizar dos tipos de actualizaciones:
- Parche: aplica correcciones de seguridad y actualizaciones a la última versión del parche. Utiliza o
ibmcloud ks worker reloadibmcloud ks worker update. Ambos comandos actualizan el nodo a la última versión del parche. El comandoupdatetambién aplica al mismo tiempo cualquier actualización de versiónmajor.minordisponible para que coincida con la versión maestra. - Major.minor: Actualiza la versión de Kubernetes del nodo de trabajo para que coincida con la del nodo maestro. Tus nodos de trabajo pueden estar como máximo dos versiones por detrás del nodo maestro (
n-2). Utiliza el comandoibmcloud ks worker update.
Para obtener más información, consulte Tipos de actualización.
Es una buena práctica rotar tus certificados CA siempre que actualices tus nodos trabajadores, ya que el paso más largo de la rotación de certificados incluye recargar o reemplazar tus nodos trabajadores.
- ¿Qué ocurre con mis aplicaciones durante una actualización?
- Las aplicaciones que se ejecutan en nodos de trabajo actualizados se reprograman en otros nodos de trabajo del clúster, incluidos nodos de diferentes grupos de trabajo o nodos de trabajo independientes. Para evitar tiempos de inactividad, asegúrate de que el clúster tenga capacidad suficiente para soportar la carga de trabajo antes de iniciar la actualización.
- ¿Cómo puedo controlar cuántos nodos de trabajo se desactivan a la vez durante una actualización o una recarga?
- Utilice el parámetro Kubernetes ConfigMap para establecer el número máximo de nodos de trabajo que pueden estar indisponibles al mismo tiempo. Los nodos de trabajo se identifican por sus etiquetas. Puedes utilizar las etiquetas proporcionadas p IBM o etiquetas personalizadas. Si necesitas que todos tus nodos de trabajo permanezcan disponibles, plantéate ajustar el tamaño de tu grupo de nodos de trabajo o añadir nodos de trabajo independientes para aumentar la capacidad de forma temporal antes de la actualización.
El control ConfigMap solo controla el comportamiento de las actualizaciones. No afecta a las recargas de los nodos de trabajo, que se producen inmediatamente cuando se solicitan.
- ¿Qué ocurre si decido no definir un mapa de configuración?
- Por defecto, durante la actualización puede que un máximo del 20 % de todos los nodos de trabajo de cada clúster no estén disponibles. Puedes anular este valor definiendo un ConfigMap con una entrada
defaultcheck.json.
Requisitos previos
Antes de actualizar los nodos de trabajo de tu infraestructura clásica, sigue los siguientes pasos previos.
Durante la actualización de un nodo de trabajo, se reinstala el sistema operativo del equipo del nodo de trabajo y se eliminan de forma permanente todos los datos que no estén almacenados en un almacenamiento persistente. Comprueba que todos los datos que debas conservar estén almacenados fuera del nodo de trabajo antes de empezar.
Si tiene instalado Portworx en su clúster, debe actualizar la configuración de Portworx antes de actualizar los nodos de trabajo.
Acciones previas a la actualización (a realizar en orden)
- Consulta la información sobre la versión de Kubernetes para conocer los últimos parches de seguridad y los cambios necesarios.
- Realice los cambios marcados como Actualizar antes de master o Actualizar después de master en la guía de preparación de la versión Kubernetes.
- Actualiza el nodo maestro antes de actualizar los nodos de trabajo. La versión del nodo de trabajo no puede ser superior a la versión del servidor API que se ejecuta en el nodo maestro.
- Inicie una sesión en la cuenta. If applicable, target the appropriate resource group. Establezca el contexto para el clúster.
- Considera la posibilidad de añadir nodos de trabajo a tu clúster para proporcionar capacidad adicional para la reprogramación de cargas de trabajo durante la actualización. Puede eliminar los nodos sobrantes una vez finalizada la actualización.
Permisos necesarios
Asegúrate de que dispones del rol de acceso a la plataforma IAM de Operador o Administrador. Si no estás seguro de cuál es tu rol de acceso, ve a Gestionar → Acceso (IAM) → Usuarios en la consola de IBM Cloud, o pregunta al administrador de tu cuenta.
Actualización de nodos trabajadores clásicos en la CLI con un mapa de configuración
Utiliza un ConfigMap para realizar una actualización progresiva de tus nodos de trabajo clásicos. La función ConfigMap te permite controlar cuántos nodos pueden estar indisponibles a la vez, por zona o región. Si la regla predeterminada del 20 % de indisponibilidad es aceptable para su clúster, puede omitir los pasos 3 y 4 (creación de ConfigMap ) y pasar directamente al paso 5 para aplicar la actualización utilizando el comportamiento predeterminado.
-
Complete los pasos de requisito previo.
-
Obtenga una lista de los nodos trabajadores disponibles y anote su dirección IP privada.
ibmcloud ks worker ls --cluster CLUSTER -
Vea las etiquetas de un nodo trabajador. Encontrará las etiquetas de los nodos trabajadores en la sección Labels de la información de salida de la CLI. Cada etiqueta consta de un
NodeSelectorKeyy unNodeSelectorValue.kubectl describe node PRIVATE-WORKER-IPSalida de ejemplo
NAME: 10.184.58.3 Roles: <none> Labels: arch=amd64 beta.kubernetes.io/arch=amd64 beta.kubernetes.io/os=linux failure-domain.beta.kubernetes.io/region=us-south failure-domain.beta.kubernetes.io/zone=dal12 ibm-cloud.kubernetes.io/encrypted-docker-data=true ibm-cloud.kubernetes.io/iaas-provider=softlayer ibm-cloud.kubernetes.io/machine-type=u3c.2x4.encrypted kubernetes.io/hostname=10.123.45.3 privateVLAN=2299001 publicVLAN=2299012 Annotations: node.alpha.kubernetes.io/ttl=0 volumes.kubernetes.io/controller-managed-attach-detach=true CreationTimestamp: Tue, 03 Apr 2022 15:26:17 -0400 Taints: <none> Unschedulable: false -
Cree un mapa de configuración y defina las reglas de no disponibilidad para los nodos trabajadores. ConfigMap admite hasta 15 comprobaciones con nombre. Cada comprobación se centra en un conjunto de nodos de trabajo según su etiqueta y establece el porcentaje máximo de dichos nodos que pueden estar indisponibles al mismo tiempo. El siguiente ejemplo muestra una comprobación de zona (
zonecheck.json), una comprobación de región (regioncheck.json), una comprobación de alternativa predeterminada (defaultcheck.json) y una plantilla para comprobaciones personalizadas. En cada comprobación, elige una de las etiquetas de los nodos de trabajo que has recuperado en el paso anterior para identificar los nodos de destino.Para cada comprobación, solo puede seleccionar un valor para
NodeSelectorKeyyNodeSelectorValue. Si desea establecer reglas para más de una región, zona u otras etiquetas de nodo trabajador, cree una nueva comprobación. Define hasta 15 comprobaciones en un mapa de configuración. Si añade más comprobaciones, sólo se vuelve a cargar 1 nodo trabajador cada vez hasta que se actualicen todos los trabajadores solicitados.Ejemplo
apiVersion: v1 kind: ConfigMap metadata: name: ibm-cluster-update-configuration namespace: kube-system data: drain_timeout_seconds: "120" zonecheck.json: | { "MaxUnavailablePercentage": 30, "NodeSelectorKey": "failure-domain.beta.kubernetes.io/zone", "NodeSelectorValue": "dal13" } regioncheck.json: | { "MaxUnavailablePercentage": 20, "NodeSelectorKey": "failure-domain.beta.kubernetes.io/region", "NodeSelectorValue": "us-south" } defaultcheck.json: | { "MaxUnavailablePercentage": 20 } <check_name>: | { "MaxUnavailablePercentage": <value_in_percentage>, "NodeSelectorKey": "<node_selector_key>", "NodeSelectorValue": "<node_selector_value>" }drain_timeout_seconds- Opcional: El tiempo de espera, en segundos, hasta que finalice el vaciado. El drenaje de un nodo trabajador elimina de forma segura todos los pods existentes del nodo trabajador y replanifica los pods en otros nodos trabajadores del clúster. Los valores aceptados son enteros comprendidos entre 1 y 180. El valor predeterminado es 30.
zonecheck.jsonyregioncheck.json- Dos comprobaciones que definen una regla para un conjunto de nodos de trabajador que puede identificar con los valores
NodeSelectorKeyyNodeSelectorValueespecificados.zonecheck.jsonidentifica los nodos de trabajador en función de la etiqueta de su zona yregioncheck.jsonutiliza la etiqueta de región que se añade a cada nodo de trabajador durante el suministro. En el ejemplo, el 30 % de todos los nodos de trabajador que tienendal13como etiqueta de zona y el 20 % de todos los nodos de trabajador que hay enus-southpueden estar no disponibles durante la actualización. defaultcheck.json- Si no crea una ningún mapa de configuración o el mapa se configura de forma incorrecta, se aplica el valor predeterminado de Kubernetes. De forma predeterminada, solo el 20% de los nodos trabajadores del clúster pueden no estar disponibles
a la vez. Puede modificar el valor predeterminado añadiendo la comprobación predeterminada al mapa de configuración. En el ejemplo, todos los nodos de trabajador que no se especifican en las comprobaciones de zona y región (
dal13ous-south) pueden estar no disponibles durante la actualización. MaxUnavailablePercentage- El número máximo de nodos que pueden no estar disponibles para una clave de etiqueta y un valor especificados, especificado como un porcentaje. Un nodo trabajador no está disponible cuando está en proceso de despliegue, de recarga o de suministro. Los nodos trabajadores en cola están bloqueados para actualizarse si se supera cualquier porcentaje no disponible máximo definido.
NodeSelectorKey- La clave de etiqueta del nodo trabajador para el que desea definir una regla. Puede establecer reglas para las etiquetas predeterminadas proporcionadas por IBM, así como para las etiquetas de nodos trabajadores que haya creado. Si desea
añadir una regla para los nodos de trabajador que pertenecen a una agrupación de trabajadores, puede utilizar la etiqueta
ibm-cloud.kubernetes.io/machine-type. NodeSelectorValue- El valor de etiqueta que debe tener el nodo trabajador para que se tenga en cuenta para la regla que defina.
-
Cree el mapa de configuración en el clúster.
kubectl apply -f <filepath/configmap.yaml> -
Verifique que se ha creado el mapa de configuración.
kubectl get configmap --namespace kube-system -
Actualice los nodos trabajadores.
ibmcloud ks worker update --cluster CLUSTER --worker WORKER-NODE-1-ID --worker WORKER-NODE-2-ID -
Opcional: compruebe los sucesos que desencadena el mapa de configuración y los errores de validación que se produzcan. Los sucesos se pueden revisar en la sección Events de la información de salida de la CLI.
kubectl describe -n kube-system cm ibm-cluster-update-configuration -
Confirme que la actualización se ha completado revisando la versión de Kubernetes de los nodos trabajadores.
kubectl get nodes -
Verifique que no tiene nodos de trabajador duplicados. En ocasiones, los clústeres más antiguos muestran nodos de trabajo duplicados con un estado
NotReadytras una actualización. Para eliminar los duplicados, consulte resolución de problemas.
Próximos pasos
-
Repita el proceso de actualización con otras agrupaciones de nodos trabajadores.
-
Notifique a todos los desarrolladores que trabajan en el clúster que actualicen su
kubectlCLI para que coincida con la versión maestra de Kubernetes. No se admite el uso de un clientekubectlcon una diferencia de dos o más versiones respecto a la versión del servidor, ya que puede provocar errores inesperados. -
Si el panel de control de Kubernetes no muestra gráficos de utilización, suprima el pod
kube-dashboard.
Actualización de nodos trabajadores clásicos en la consola
Una vez que hayas configurado el ConfigMap por primera vez, podrás actualizar los nodos de trabajo mediante la consola IBM Cloud. La consola respeta las reglas de indisponibilidad que has definido en el servicio ConfigMap.
- Sigue los pasos previos y configura un ConfigMap para controlar cómo se actualizan tus nodos de trabajo.
- En el menú de la consola IBM Cloud
, haga clic en Containers > Clusters.
- En la página Clústeres, pulse el clúster.
- En el separador Nodos trabajadores, marque el recuadro de selección de cada nodo trabajador que desee actualizar. Se muestra una barra de acciones sobre la fila de cabecera de la tabla.
- En la barra de acciones, pulse Actualizar.
Si tiene Portworx instalado en su clúster, debe reiniciar los pods de Portworx en los nodos de trabajo actualizados. Para obtener más información, consulte las Limitaciones de Portworx.
Actualización de nodos trabajadores de VPC
Los nodos de trabajo de VPC se actualizan de forma diferente según su tipo. El comando ibmcloud ks worker update no es compatible con ningún nodo de trabajo de VPC. En todos los casos, primero debe actualizarse el nodo maestro del
clúster.
- Trabajadores de VPC bare metal y trabajadores de instancias de servidor virtual (VSI) de VPC: sustituidos por (
ibmcloud ks worker replace --updatepara que coincidan con la versión maestra) oibmcloud ks worker replace(solo actualización de parches). Se elimina el nodo antiguo y se aprovisiona uno nuevo.
Puedes realizar dos tipos de actualizaciones:
- Parche: aplica correcciones de seguridad y actualizaciones al último parche de la versión actual de la lista de materiales (BOM). Utilice
ibmcloud ks worker replace. - Major.minor: Actualiza la versión de Kubernetes del nodo de trabajo para que coincida con la del nodo maestro. Tus nodos de trabajo pueden tener como máximo dos versiones de retraso respecto al nodo maestro (
n-2). Utilizaibmcloud ks worker replace --update.
Es una buena práctica rotar tus certificados CA siempre que actualices tus nodos trabajadores, ya que el paso más largo de la rotación de certificados incluye recargar o reemplazar tus nodos trabajadores.
- ¿Qué ocurre con mis aplicaciones durante una actualización?
- Las aplicaciones que se ejecutan en nodos de trabajo actualizados se reprograman en otros nodos de trabajo del clúster. Estos nodos trabajadores pueden estar en otra agrupación de nodos trabajadores. Para evitar tiempos de inactividad, asegúrate de que tu clúster tenga capacidad suficiente para soportar la carga de trabajo antes de iniciar la actualización. Para obtener más información, consulte Adición de nodos trabajadores a clústeres clásicos o Adición de nodos trabajadores a clústeres de VPC.
- ¿Qué ocurre con mi nodo de trabajo durante una actualización?
- El nodo de trabajo se sustituye eliminando el nodo de trabajo antiguo y aprovisionando un nuevo nodo de trabajo que se ejecute con el parche o la versión
major.minoractualizados. El nodo trabajador de sustitución se crea en la misma zona y en la misma agrupación de nodos trabajadores, y con el mismo tipo que el nodo trabajador suprimido. Sin embargo, al nodo trabajador de sustitución se le asigna una nueva dirección IP privada y pierde las marcas o etiquetas personalizadas que ha aplicado al nodo trabajador antiguo (las marcas o etiquetas de la agrupación de nodos trabajadores se siguen aplicando al nodo trabajador de sustitución). - ¿Qué ocurre si sustituyo varios nodos de trabajo al mismo tiempo?
- Si sustituye varios nodos trabajadores al mismo tiempo, se suprimen y se sustituyen simultáneamente, no uno por uno. Asegúrese de que tiene suficiente capacidad en el clúster para volver a planificar las cargas de trabajo antes de sustituir los nodos trabajadores.
- ¿Qué ocurre si no se crea un nodo de trabajo de sustitución?
- No se crea un nodo trabajador de sustitución si la agrupación de nodos trabajadores no tiene el reequilibrio automático habilitado.
Requisitos previos
Antes de actualizar los nodos de trabajo de tu infraestructura VPC, sigue los siguientes pasos previos.
En el caso de los trabajadores VPC VSI, el nodo de trabajo se elimina y se sustituye por un nuevo nodo. En el caso de los servidores bare metal de VPC, el nodo se recarga in situ. En ambos casos, los datos que no se almacenan en un almacenamiento persistente se eliminan de forma permanente. Comprueba que todos los datos que debas conservar estén almacenados fuera del nodo de trabajo antes de empezar.
Si tienes un Portworx e implementado en tu clúster, sigue los pasos para actualizar los nodos de trabajo de VPC con volúmenes de Portworx en lugar de los pasos que se indican en esta página.
Acciones previas a la actualización (a realizar en orden)
- Consulta la información sobre la versión de Kubernetes para conocer los últimos parches de seguridad y los cambios necesarios.
- Realice los cambios marcados como Actualizar antes de master o Actualizar después de master en la guía de preparación de la versión Kubernetes.
- Actualiza el nodo maestro antes de actualizar los nodos de trabajo. La versión del nodo de trabajo no puede ser superior a la versión del servidor API que se ejecuta en el nodo maestro.
- Inicie una sesión en la cuenta. If applicable, target the appropriate resource group. Establezca el contexto para el clúster.
Permisos necesarios
Asegúrate de que dispones del rol de acceso a la plataforma IAM de Operador o Administrador. Si no estás seguro de cuál es tu rol de acceso, ve a Gestionar → Acceso (IAM) → Usuarios en la consola de IBM Cloud, o pregunta al administrador de tu cuenta.
Actualización de nodos trabajadores de VPC en la CLI
Sigue estos pasos para actualizar tus nodos de trabajo mediante la CLI.
-
Complete los pasos de requisito previo.
-
Opcional: Aumenta la capacidad de tu clúster cambiando el tamaño del grupo de trabajadores. Los pods del nodo trabajador se pueden volver a planificar y pueden seguir ejecutándose en los nodos trabajadores añadidos durante la actualización. Para obtener más información, consulte Adición de nodos trabajadores a clústeres clásicos o Adición de nodos trabajadores a clústeres de VPC.
-
Obtenga una lista de los nodos trabajadores del clúster y anote el ID y la IP principal del nodo trabajador que desea actualizar.
ibmcloud ks worker ls --cluster CLUSTER -
Actualiza el nodo de trabajo.
Utiliza el comando
worker replacepara actualizar la versión del parche o lamajor.minorversión que coincida con la versión maestra.- Para actualizar el nodo de trabajo a la misma
major.minorversión que el maestro, por ejemplo, de la 1.35 a la 1.36, incluya la opción--update.
ibmcloud ks worker replace --cluster CLUSTER --worker WORKER-NODE-ID --update ``` * Para actualizar el nodo de trabajo a la última versión de parche dentro de la misma `major.minor` versión, por ejemplo, de la 1.35.8_1530 a la 1.35.9_1533, no incluyas la opción `--update`. ```sh {: pre} ibmcloud ks worker replace --cluster CLUSTER --worker WORKER-NODE-ID ``` - Para actualizar el nodo de trabajo a la misma
-
Repita estos pasos para cada nodo trabajador que deba actualizar.
-
Opcional: Una vez que los nodos de trabajo sustituidos se encuentren en estado Listo, ajuste el tamaño del grupo de nodos de trabajo para que se adapte a la capacidad de clúster que desee. Para obtener más información, Adición de nodos trabajadores a clústeres de VPC.
Si ejecuta Portworx en el clúster de VPC, debe conectar manualmente el volumen de Block Storage for VPC al nuevo nodo trabajador.
Actualizaciones de firmware durante la recarga de un trabajador bare metal de VPC
Al reiniciar un nodo de trabajo bare metal de VPC, la infraestructura de IBM Cloud comprueba automáticamente si hay alguna actualización de firmware pendiente para ese servidor y la aplica como parte del proceso de reinicio. No es necesario realizar ninguna acción adicional para activar la actualización del firmware.
Ten en cuenta las siguientes consideraciones al reiniciar un nodo de trabajo bare metal de VPC:
- Tiempo de recarga prolongado
- Si se aplica una actualización de firmware durante la recarga, el tiempo total de recarga puede aumentar significativamente —en 30 minutos o más— por encima de la duración habitual de la recarga. Planifica tus ventanas de mantenimiento en consecuencia.
- No hay información previa sobre las actualizaciones pendientes
- No se puede saber si hay una actualización de firmware pendiente para un nodo de trabajo antes de ejecutar el comando de recarga.
- Riesgo de pérdida de datos
- Al igual que ocurre con todas las recargas de los servidores bare metal de VPC, los datos de los discos locales se eliminan durante la recarga, independientemente de si se aplica una actualización de firmware. Haz una copia de seguridad de todos los datos que no estén almacenados en un almacenamiento persistente antes de volver a cargarlos.
- Error de recarga debido a una actualización del firmware
- En algunos casos, una actualización de firmware puede fallar, lo que provoca que el nodo de trabajo entre en un estado
reload_failed(Failed to reload worker) con los detalles de estadoThe infrastructure firmware update has failed. (P4056). Si ocurre esto:- Espera unos minutos y, a continuación, vuelve a intentar actualizar la página ejecutando de nuevo
ibmcloud ks worker reload --cluster CLUSTER --worker WORKER-NODE-ID. - Si el error persiste tras 2 o 3 intentos, abre un caso de soporte en IBM Cloud.
- Espera unos minutos y, a continuación, vuelve a intentar actualizar la página ejecutando de nuevo
Actualización de nodos trabajadores de VPC en la consola
Puede actualizar los nodos trabajadores de VPC en la consola. Antes de empezar, plantéate añadir nodos de trabajo al clúster para evitar el tiempo de inactividad de tus aplicaciones.
Lo que hace la acción Update depende del tipo de nodo de trabajo:
- Todos los trabajadores de VPC: el nodo de trabajo se sustituye por un nuevo nodo en la versión actualizada.
- Complete los pasos de requisito previo.
- En el menú de la consola IBM Cloud
, haga clic en Containers > Clusters.
- En la página Clústeres, pulse el clúster.
- En el separador Nodos trabajadores, marque el recuadro de selección de cada nodo trabajador que desee actualizar. Se muestra una barra de acciones sobre la fila de cabecera de la tabla.
- En la barra de acciones, pulse Actualizar.
Actualización de las versiones (tipos de máquina)
Actualiza la variante (tipo de máquina) de tus nodos de trabajo cuando necesites recursos de cálculo diferentes; por ejemplo, más memoria, CPU adicionales o una máquina con GPU. Al actualizar una variante, se crea un nuevo grupo de trabajadores con la nueva variante y, a continuación, se elimina el grupo de trabajadores anterior. Dado que este proceso sustituye los nodos, todos los datos de los nodos de trabajo que no estén almacenados en un almacenamiento persistente se eliminan de forma permanente.
Antes de empezar
- Inicie una sesión en la cuenta. If applicable, target the appropriate resource group. Establezca el contexto para el clúster.
- Comprueba que todos los datos que debas conservar estén almacenados en un almacenamiento persistente fuera del nodo de trabajo. Los datos almacenados únicamente en el nodo de trabajo se pierden y no se pueden recuperar.
- Asegúrate de que dispones del rol de acceso a la plataforma IAM de Operador o Administrador. Si no estás seguro de cuál es tu rol de acceso, ve a Gestionar → Acceso (IAM) → Usuarios en la consola de IBM Cloud, o pregunta al administrador de tu cuenta.
Para actualizar las variantes
-
Obtenga una lista de los nodos trabajadores disponibles y anote su dirección IP privada.
- Obtenga una lista de los nodos trabajadores del clúster.
ibmcloud ks worker-pool ls --cluster CLUSTER ``` 2. Obtenga una lista de los nodos trabajadores de la agrupación de nodos trabajadores. Anote el **ID** y la **IP privada**. ```sh {: pre} ibmcloud ks worker ls --cluster CLUSTER --worker-pool WORKER-POOL ``` 3. Obtenga los detalles de un nodo trabajador. En la salida, anote la zona y el ID de VLAN privada y pública para los clústeres clásicos o el ID de subred para clústeres de VPC. ```sh {: pre} ibmcloud ks worker get --cluster CLUSTER --worker WORKER-ID ``` -
Obtenga una lista de las versiones disponibles en la zona.
ibmcloud ks flavors --zone <zone> -
Cree un nodo trabajador con el nuevo tipo de máquina.
- Cree una agrupación de nodos trabajadores con el número de nodos trabajadores que desea sustituir.
- Clústeres clásicos:
ibmcloud ks worker-pool create classic --name WORKER-POOL --cluster CLUSTER --flavor FLAVOR --size-per-zone NUMBER-OF-WORKERS-PER-ZONE - Clústeres VPC Generación 2:
ibmcloud ks worker-pool create vpc-gen2 --name NAME --cluster CLUSTER --flavor FLAVOR --size-per-zone NUMBER-OF-WORKERS-PER-ZONE --label LABEL
- Clústeres clásicos:
- Verifique que la agrupación de nodos trabajadores se ha creado.
ibmcloud ks worker-pool ls --cluster CLUSTER ``` 3. Añada la zona a la agrupación de nodos trabajadores que ha recuperado anteriormente. Cuando se añade una zona, los nodos trabajadores definidos en la agrupación de nodos trabajadores se suministran en la zona y se tienen en cuenta para la futura planificación de la carga de trabajo. Si desea distribuir los nodos trabajadores en varias zonas, elija una ubicación multizona [clásica](/docs/containers?topic=containers-regions-and-zones#zones-mz) o [VPC](/docs/containers?topic=containers-regions-and-zones#zones-vpc). * Clústeres clásicos: ```sh {: pre} ibmcloud ks zone add classic --zone ZONE --cluster CLUSTER --worker-pool WORKER-POOL --private-vlan PRIVATE-VLAN-ID --public-vlan PUBLIC-VLAN-ID ``` * Clústeres VPC: ```sh {: pre} ibmcloud ks zone add vpc-gen2 --zone ZONE --cluster CLUSTER --worker-pool WORKER-POOL --subnet-id VPC-SUBNET-ID ``` - Cree una agrupación de nodos trabajadores con el número de nodos trabajadores que desea sustituir.
-
Espere a que se desplieguen los nodos trabajadores. Cuando el estado del nodo trabajador pase a ser Normal, significa que el despliegue ha finalizado.
ibmcloud ks worker ls --cluster CLUSTER -
Elimina el antiguo grupo de trabajadores. Si eliminas una variante Classic de servidor físico (cuya facturación es mensual), se te cobrará el mes completo, aunque la elimines a mitad de mes. Los trabajadores de VPC, incluidos los de servidor físico, se facturan por horas.
- Elimine la agrupación de nodos trabajadores con el tipo de máquina antiguo. Al eliminar una agrupación de nodos trabajadores se eliminan todos los nodos trabajadores de la agrupación en todas las zonas. El proceso puede tardar varios minutos en completarse.
ibmcloud ks worker-pool rm --worker-pool WORKER-POOL --cluster CLUSTER ``` 2. Verifique que la agrupación de nodos trabajadores se ha eliminado. ```sh {: pre} ibmcloud ks worker-pool ls --cluster CLUSTER ``` -
Verifique que los nodos trabajadores se han eliminado del clúster.
ibmcloud ks worker ls --cluster CLUSTER -
Repita estos pasos para actualizar otras agrupaciones de nodos trabajadores o nodos trabajadores autónomos a distintas versiones.
¿Cómo se reduce la escala de las agrupaciones de nodos trabajadores?
En esta sección se describe la lógica de priorización automática que se utiliza cuando se eliminan nodos de trabajo durante una reducción de escala, por ejemplo, tras una actualización de un nodo de trabajo o al ejecutar ibmcloud ks worker-pool resize.
No es necesario configurar este comportamiento, ya que se produce automáticamente.
Cuando se reduce el número de nodos de trabajo en un grupo de trabajo, estos se eliminan por orden de prioridad en función de varias propiedades, como el estado, la integridad y la versión.
Esta lógica de prioridad no es relevante para el complemento del programa de escalado automático.
En la tabla siguiente se muestra el orden en el que se prioriza la supresión de los nodos trabajadores.
Puede ejecutar el mandato ibmcloud ks worker ls para ver todas las propiedades de nodo trabajador listadas en la tabla.
| Prioridad | Propiedad | Descripción |
|---|---|---|
| 1 | Estado del nodo trabajador | Los nodos trabajadores en estados que no funcionan o que funcionan mal se priorizan para su eliminación. Esta lista muestra los estados ordenados de la prioridad más alta a la más baja: provision_failed, deploy_failed,
deleting, provision_pending, provisioning, deploying, provisioned, reloading_failed, reloading, deployed. |
| 2 | Salud del nodo de trabajador | Los nodos trabajadores en mal estado se priorizan sobre los nodos trabajadores en buen estado. Esta lista muestra los estados de salud ordenados de mayor a menor prioridad: critical, warning, pending,
unsupported, normal. |
| 3 | Versión de nodo trabajador | Los nodos trabajadores que se ejecutan en versiones anteriores tienen una prioridad más alta para su supresión. |
| 4 | Entorno de colocación elegido | Sólo para trabajadores que se ejecutan en un host dedicado. Los nodos trabajadores que se ejecutan en un host dedicado que tiene la opción DesiredPlacementDisabled establecida en true tienen una
prioridad más alta para su supresión. |
| 5 | orden alfabético | Después de priorizar los nodos de trabajador basándose en los factores listados anteriormente, se suprimen por orden alfabético. Tenga en cuenta que, basándose en los convenios de ID de nodo trabajador, los ID de los trabajadores de los clústeres clásicos y de VPC se correlacionan con la edad, por lo que los nodos trabajadores más antiguos se eliminan primero. |
Actualización de los componentes de un clúster
El clúster de IBM Cloud Kubernetes Service se suministra con componentes, como Ingress, que se instalan automáticamente cuando se suministra el clúster. De forma predeterminada, IBM actualiza automáticamente estos componentes. No obstante, puede inhabilitar las actualizaciones automáticas de algunos componentes y actualizarlos manualmente de forma independiente de los nodos maestro y trabajador.
- ¿Qué componentes predeterminados puedo actualizar por separado del clúster?
- Opcionalmente, puede inhabilitar las actualizaciones automáticas para los componentes siguientes:
- ¿Hay algún componente que no pueda actualizar por separado del clúster?
- Sí. El clúster se despliega con los siguientes componentes gestionados y recursos asociados que no se pueden cambiar, excepto para escalar pods o editar mapas de configuración para obtener determinadas mejoras de rendimiento. Si intenta modificar uno de estos componentes de despliegue, se restauran sus valores originales con un intervalo regular cuando se actualizan con el clúster maestro. Sin embargo, tenga en cuenta que los recursos que cree asociados a dichos componentes, como las políticas de red de Calico que cree para que las implementen los componentes de despliegue de Calico, no se actualizan.
- Componentes de
calico - Componentes de
coredns ibm-cloud-provider-ipibm-file-pluginibm-keepalived-watcheribm-master-proxyibm-storage-watcher- Componentes de
kubernetes-dashboard metrics-server- Componentes de
olm-operatorycatalog(1.16 y posterior) vpn
- ¿Puedo instalar otros complementos o extensiones además de los componentes predeterminados?
- Sí. IBM Cloud Kubernetes Service ofrece otros complementos y extensiones entre los que puede elegir para ampliar las capacidades de su clúster. Por ejemplo, es posible que desee utilizar los gráficos de Helm para instalar el complemento de almacenamiento en bloque. O quizá quieras habilitar los complementos gestionados por IBM en tu clúster. Debe actualizar estos diagramas de Helm y complementos por separado, siguiendo las instrucciones de los archivos readme de los diagramas de Helm o siguiendo los pasos para actualizar complementos gestionados.
Gestión de actualizaciones automáticas para Fluentd
Cuando crea una configuración de registro para un origen en el clúster a fin de reenviar a un servidor externo, se crea un componente Fluentd en el clúster. Para cambiar las configuraciones de registro o de filtro, el componente Fluentd debe estar en la última versión. De forma predeterminada, las actualizaciones automáticas del componente están habilitadas.
Para ejecutar los siguientes comandos, debe disponer del rol de acceso a la plataforma IAM IBM Cloud de administrador para el clúster.
Puede gestionar las actualizaciones automáticas del componente Fluentd de las maneras siguientes.
- Para comprobar si las actualizaciones automáticas están habilitadas, ejecute el mandato
ibmcloud ks logging autoupdate get --cluster CLUSTER. - Desactiva las actualizaciones automáticas ejecutando el.
ibmcloud ks logging autoupdate disablecomando - Si las actualizaciones automáticas están inhabilitadas pero tiene que modificar la configuración, tiene dos opciones:
- Activar las actualizaciones automáticas para sus pods Fluentd.
ibmcloud ks logging autoupdate enable --cluster CLUSTER ``` * Forzar una actualización única cuando utilice un mandato de registro que incluya la opción `--force-update`. Tus pods se actualizan a la última versión del componente Fluentd, pero Fluentd no se actualizará automáticamente en el futuro. Mandato de ejemplo ```sh {: pre} ibmcloud ks logging config update --cluster CLUSTER --id LOG-CONFIG-ID --type LOG-TYPE --force-update ```
Gestión de actualizaciones automáticas para los ALB de Ingress
Controle cuándo se actualiza el componente de equilibrador de carga de aplicación (ALB) de Ingress. Para obtener información sobre cómo mantener los ALB actualizados, consulte Gestión del ciclo de vida de ALB de Ingress.
Actualización de complementos gestionados
Los complementos gestionados para clústeres de IBM Cloud Kubernetes Service son una forma sencilla de mejorar su clúster con capacidades de código abierto, como Istio. La versión de la herramienta de código abierto que añade al clúster se prueba en IBM y se aprueba para ser utilizada en IBM Cloud Kubernetes Service. Para actualizar los complementos gestionados que ha habilitado en el clúster a las últimas versiones, consulte Actualización de complementos gestionados.