Cese y sustitución de nodos de trabajador
Descubra cómo terminar y reemplazar un nodo de trabajador en un cluster de Kubernetes que ha creado con Kubernetes Engine (OKE).
Solo puede sincronizar nodos para terminar y sustituir nodos de trabajador al utilizar clusters mejorados. Consulte Trabajar con clusters mejorados y clusters básicos.
Puede sincronizar nodos para terminar y reemplazar nodos con unidades de máquina virtual y unidades con hardware dedicado.
Puede sincronizar los nodos para terminar y sustituir los nodos gestionados.
A veces, terminar y sustituir nodos gestionados es la mejor manera de resolver un problema con las instancias informáticas que alojan los nodos. En concreto, cuando un problema se puede resolver simplemente finalizando una instancia existente y sustituyéndola por una nueva instancia que tenga las mismas propiedades o que tenga diferentes propiedades derivadas de propiedades del pool de nodos cambiadas (como un sistema operativo host cambiado o una unidad de computación cambiada). Por ejemplo:
- Para solucionar cualquier cambio de configuración que pueda haberse producido desde que se inició originalmente la instancia.
- Para solucionar cualquier fallo de hardware subyacente.
Con Kubernetes Engine, puede terminar y sustituir las instancias informáticas que alojan nodos gestionados de las siguientes formas:
- Puede sincronizar el pool de nodos que contiene los nodos gestionados y seleccionar la opción Sustituir nodos, como se describe en esta sección.
- Puede sincronizar y sustituir nodos gestionados específicos, como se describe en esta sección.
- Puede suprimir un nodo gestionado específico. Si no indica que desea que la supresión de nodos reduzca verticalmente el pool de nodos, el nodo que suprime se sustituye por un nuevo nodo (consulte Supresión de nodos de trabajador).
Al sincronizar y terminar y reemplazar un nodo gestionado, Kubernetes Engine conecta y drena automáticamente el nodo de trabajador antes de finalizarlo. La instancia informática que aloja el nodo gestionado se termina y se crea una nueva instancia. Tenga en cuenta que la nueva instancia tiene un OCID y una dirección de red nuevos.
Si sincroniza todos los nodos gestionados de un pool de nodos para terminarlos y sustituirlos, cuando las nuevas instancias tienen un estado En ejecución, las actualizaciones de las propiedades del pool de nodos se aplican a todos los nodos de trabajador del pool de nodos. Tenga en cuenta que si sincroniza un nodo gestionado individual para finalizarlo y reemplazarlo, las actualizaciones de las propiedades del pool de nodos se aplican al nodo de sustitución.
Además de permitirle realizar el mantenimiento rutinario de nodos de trabajador, la terminación y sustitución de nodos gestionados también puede ser útil cuando desee:
- Actualice las propiedades de los nodos gestionados (consulte Actualización de nodos de trabajador en un pool de nodos existente mediante la terminación y sustitución de nodos).
- Actualice la versión de Kubernetes que se ejecuta en nodos gestionados (consulte Actualización de nodos gestionados mediante la terminación y sustitución de nodos).
Tenga en cuenta las siguientes consideraciones al sincronizar para cesar y sustituir nodos de trabajador:
- Puede seleccionar un pool de nodos gestionado para sincronizar, terminar y sustituir todos los nodos gestionados que contiene. También puede sincronizar, terminar y sustituir nodos gestionados individuales.
- No puede sincronizar nodos autogestionados para terminarlos y sustituirlos.
Equilibrar la disponibilidad y el costo del servicio al finalizar y sustituir nodos gestionados en pools de nodos
Al sincronizar todos los nodos gestionados de un pool de nodos para terminarlos y sustituirlos, Kubernetes Engine utiliza la configuración de cordón y vaciado especificada para el pool de nodos y sigue dos estrategias:
- Cree nuevos nodos (adicionales) y, a continuación, elimine los nodos existentes: Kubernetes Engine agrega un nodo (o nodos) adicional al pool de nodos con propiedades actualizadas. Cuando el nodo adicional está activo, Kubernetes Engine conecta un nodo existente, drena el nodo y elimina el nodo del pool de nodos. Esta estrategia mantiene la disponibilidad del servicio, pero cuesta más.
- Elimine los nodos existentes y, a continuación, cree nuevos nodos: Kubernetes Engine conecta un nodo (o nodos) existente para que no esté disponible, vacía el nodo y elimina el nodo del pool de nodos. Cuando se ha eliminado el nodo, Kubernetes Engine agrega un nuevo nodo al pool de nodos para sustituir el nodo que se ha eliminado. Esta estrategia cuesta menos, pero podría comprometer la disponibilidad del servicio.
Para adaptar el comportamiento del motor de Kubernetes a sus propios requisitos de disponibilidad y costo del servicio, controle y equilibre las dos estrategias especificando valores para maxSurge y maxUnavailable. Para obtener más información, consulte Balancing Service Availability and Cost When Cycling Managed Nodes in Node Pools.
Cableado y drenaje al terminar y reemplazar nodos
Cuando selecciona un pool de nodos y especifica que desea terminar y reemplazar sus nodos de trabajador, Kubernetes Engine automáticamente conecta, drena y termina los nodos gestionados existentes. Kubernetes Engine utiliza las opciones de Cordón y vaciado especificadas para el pool de nodos.
Cuando selecciona un nodo gestionado individual y especifica que desea terminarlo y sustituirlo, puede especificar las opciones Cordón y vaciado. Las opciones de cordón y vaciado que especifique para el nodo gestionado sustituyen las opciones de cordón y vaciado especificadas para el pool de nodos.
Para obtener más información, consulte Cordoning and Draining Managed Nodes Before Shut Down or Termination.
Cese y sustitución de nodos de trabajador
Para terminar y sustituir todos los nodos de trabajador en un pool de nodos gestionado:
- En la página de lista Clusters, seleccione el nombre del cluster que contiene los nodos de trabajador que desea terminar y sustituir. Si necesita ayuda para encontrar la página de lista o el cluster, consulte Listing Clusters.
- En Recursos, seleccione Pools de nodos y, a continuación, seleccione el nombre del pool de nodos que contiene los nodos de trabajador que desea terminar y sustituir.
- Seleccione Editar y cambie una propiedad no utilizada del pool de nodos (por ejemplo, especificando una etiqueta de Kubernetes con una clave de
foo
y un valor debar
).Tenga en cuenta que la propiedad que cambia es irrelevante, pero debe cambiar al menos una propiedad.
-
En la página Pool de nodos, seleccione Nodos de ciclo.
Recomendado: aprovecha los presupuestos de interrupción de pod según corresponda para su aplicación con el final de garantizar que haya un número suficientes de pods de réplica que se ejecuten durante la operación. Para obtener más información, consulte Especificación de un presupuesto de interrupción para la aplicación en la documentación de Kubernetes.
-
En el cuadro de diálogo Nodos de ciclo:
- Seleccione Reemplazar nodos en la lista Opciones de ciclo.
- Controle el número de nodos que se van a actualizar en paralelo y equilibre la disponibilidad y el costo del servicio especificando:
- Número o porcentaje máximo de nodos adicionales (maxSurge): número máximo de nodos adicionales que se pueden permitir temporalmente en el pool de nodos durante la operación (expresado como un entero o como un porcentaje). Los nodos adicionales son nodos por encima del número especificado en la propiedad Node count del pool de nodos. Si especifica un número entero para el número de nodos adicionales, no especifique un número mayor que el valor de Recuento de nodos.
- Número o porcentaje máximo de nodos no disponibles (maxUnavailable): número máximo de nodos que permite que no estén disponibles en el pool de nodos durante la operación (expresado como un entero o como un porcentaje). Si especifica un número entero para el número de nodos no disponibles, no especifique un número mayor que el valor de Recuento de nodos.
- Seleccione Nodos de ciclo para iniciar la operación.
El motor de Kubernetes utiliza las opciones de cordón y drenaje especificadas para el pool de nodos para acordonar y drenar los nodos de trabajador. Para obtener más información, consulte Cordoning and Draining Managed Nodes Before Shut Down or Termination.
-
Supervise el progreso de la operación mediante la visualización del estado de la solicitud de trabajo asociada en la página Detalles de pool de nodos (consulte Obtención de detalles de una solicitud de trabajo).
Para terminar y sustituir un nodo gestionado específico:
- En la página de lista Clusters, seleccione el nombre del cluster que contiene el nodo de trabajador que desea reiniciar. Si necesita ayuda para encontrar la página de lista o el cluster, consulte Listing Clusters.
- En Recursos, seleccione Pools de nodos y, a continuación, seleccione el nombre del pool de nodos que contiene el nodo de trabajador que desea terminar y sustituir.
- En Recursos, seleccione Nodos.
-
Seleccione Nodo de ciclo en el menú Acciones junto al nodo que desea terminar y sustituir.
- En el cuadro de diálogo Nodo de ciclo:
- Seleccione Replace node (Sustituir nodo) en la lista Cycling options (Opciones de ciclo).
-
Especifique cuándo y cómo acordonar y vaciar el nodo de trabajador antes de realizar la acción de cese y sustitución especificando:
- Período de gracia de expulsión (minutos): período de tiempo que se permite acordonar y vaciar el nodo de trabajador antes de realizar la acción. Acepte el valor predeterminado (60 minutos) o especifique una alternativa. Por ejemplo, puede que desee permitir 30 minutos para acordonar un nodo de trabajador y vaciarlo de sus cargas de trabajo. Para realizar la acción inmediatamente, sin acordonar ni drenar el nodo de trabajador, especifique 0 minutos.
- Forzar cese después del período de gracia: indica si se deben cesar los nodos de trabajador al final del período de gracia de desalojo, incluso si no se han acordonado y drenado correctamente. Por defecto, esta opción no está seleccionada.
Consulte Cordoning and Draining Managed Nodes Before Shut Down or Termination.
- Seleccione Nodo de ciclo para iniciar la operación.
-
Supervise el progreso de la operación mediante la visualización del estado de la solicitud de trabajo asociada en la página Detalles de pool de nodos (consulte Obtención de detalles de una solicitud de trabajo).
Terminar y sustituir todos los nodos de trabajador en un pool de nodos gestionado
Para terminar y sustituir todos los nodos de trabajador en un pool de nodos gestionado, utilice el comando oci ce node-pool update y los parámetros necesarios:
oci ce node-pool update --node-pool-id <node-pool-ocid> --node-pool-cycling-details "{\"isNodeCyclingEnabled\":true,\"cycleModes\":\"INSTANCE_REPLACE\",\"maximumUnavailable\":<value>,\"maximumSurge\":<value>}" --<property-to-update> <new-value> [OPTIONS]
donde
--<property-to-update> <new-value>
es un nuevo valor para una propiedad del pool de nodos. Tenga en cuenta que la propiedad que cambia es irrelevante, pero debe cambiar al menos una propiedad. Tenga en cuenta también que la inclusión de\"cycleModes\":\"INSTANCE_REPLACE\"
en el parámetro--node-pool-cycling-details
es opcional, ya que se asume si no se incluye explícitamente.Por ejemplo:
oci ce node-pool update --node-pool-id ocid1.nodepool.oc1.iad.aaaaaaa______eya --node-pool-cycling-details "{\"isNodeCyclingEnabled\":true,\"maximumUnavailable\":1,\"maximumSurge\":1}" --initial-node-labels '[{"key": "foo", "value": "bar"}]'
Terminar y sustituir un nodo gestionado específico
Para terminar y sustituir un nodo gestionado específico, utilice el comando oci ce node-pool delete-node y los parámetros necesarios para suprimir un nodo, e incluya
--is-decrement-size false
para especificar que no desea reducir verticalmente el pool de nodos:oci ce node-pool delete-node --node-pool-id <node-pool-ocid> --node-id <node-ocid> --is-decrement-size false [OPTIONS]
Para terminar y sustituir todos los nodos de trabajador en un pool de nodos gestionado mediante la API de OCI:
Ejecute la operación UpdateNodePool para terminar y sustituir todos los nodos de trabajador en un pool de nodos gestionado.
Para terminar y sustituir un nodo gestionado específico mediante la API de OCI:
Ejecute la operación DeleteNode para terminar y sustituir un nodo gestionado específico mediante la API de OCI.