Realización de una actualización de nodo de trabajador externa mediante la sustitución de un pool de nodos existente por un nuevo pool de nodos

Descubra cómo actualizar las propiedades de los nodos de trabajador en un pool de nodos sustituyendo el pool de nodos original por un nuevo pool de nodos que tenga nuevos nodos de trabajador por las propiedades necesarias, mediante Container Engine for Kubernetes (OKE).

Puede actualizar las propiedades de los nodos de trabajador de un pool de nodos sustituyendo el pool de nodos original por un nuevo pool de nodos que tenga nuevos nodos de trabajador por las propiedades necesarias.

Una vez creado el nuevo pool de nodos y especificado las propiedades de nodo de trabajador que necesita, puede drenar los nodos de trabajador existentes en el pool de nodos original para evitar el inicio de nuevos pods y suprimir los pods existentes. A continuación, puede suprimir el pool de nodos original. Cuando se inician nuevos nodos de trabajador en el nuevo pool de nodos, tienen las propiedades especificadas.

Uso de la consola

Para realizar una actualización "externa" de un pool de nodos en un cluster, cree un nuevo pool de nodos:

  1. Abra el menú de navegación y haga clic en Servicios para desarrolladores. En Contenedores y artefactos, haga clic en Clusters de Kubernetes (OKE).
  2. Seleccione un compartimento en el que tenga permiso para trabajar.
  3. En la página Lista de clusters, haga clic en el nombre del cluster en el que desea actualizar las propiedades del nodo de trabajador.
  4. En la página Cluster (Cluster), consulte el separador Pools de nodos y, a continuación, haga clic en Agregar pool de nodos para crear un nuevo pool de nodos y especificar las propiedades de nodo de trabajador requeridas.

    Tenga en cuenta que si especifica una versión de Kubernetes diferente, la versión que especifique debe ser compatible con la versión que se está ejecutando en los nodos de plano de control. Consulte Actualización de clusters a versiones más recientes de Kubernetes.

  5. Si hay etiquetas asociadas a nodos de trabajador en el pool de nodos original y esas etiquetas son utilizadas por los selectores (por ejemplo, para determinar los nodos en los que ejecutar pods), use el comando kubectl label nodes para asociar las mismas etiquetas a los nuevos nodos de trabajador en el nuevo pool de nodos. Consulte Asignación de pods a nodos en la documentación de Kubernetes.
  6. Para el primer nodo de trabajador en el pool de nodos original, evite que los nuevos pods se inicien y suprima los pods existentes introduciendo:

    kubectl drain <node_name>

    Para obtener más información:

    Recomendado: Aproveche los presupuestos de interrupción de pod según corresponda para su aplicación con el fin de garantizar que haya un número suficiente de pods de réplica en ejecución durante la operación de vaciado.

  7. Repita el paso anterior para cada nodo de trabajador restante en el pool de nodos, hasta que todos los nodos de trabajador se hayan purgado del pool de nodos original.

    Cuando se hayan purgado todos los nodos de trabajador del pool de nodos original y cuando los pods se estén ejecutando en nodos de trabajador del nuevo pool de nodos, puede suprimir el pool de nodos original.

  8. En la página Cluster, muestre el separador Pools de nodos y seleccione Suprimir pool de nodos en el menú Acciones junto al pool de nodos original.

    Se suprime el pool de nodos original y todos sus nodos de trabajador.

Uso de la CLI

Para obtener información sobre el uso de la CLI, consulte Interfaz de línea de comandos (CLI). Para obtener una lista completa de los indicadores y las opciones disponibles para los comandos de la CLI, consulte Referencia de la línea de comandos.

Para realizar una actualización de nodo de trabajador 'fuera de lugar'

En primer lugar, cree un nuevo pool de nodos con las propiedades de nodo de trabajador que necesite:

oci ce node-pool create \
--cluster-id <cluster-ocid> \
--name <node-pool-name> \
--node-image-id <image-ocid> \
--compartment-id <compartment-ocid> \
--kubernetes-version <version> \
--node-shape <shape> \
--placement-configs "[{\"availability-domain\":\"<domain-name>\", \"subnet-id\":\"<subnet-ocid>\"}]" \
--size <number-of-nodes> \
[OPTIONS]

A continuación, para cada nodo de trabajador en el pool de nodos original, evite que los nuevos pods se inicien y suprima los pods existentes drenando cada nodo de trabajador a su vez:

kubectl drain <node_name>

Finalmente, suprima el pool de nodos original:

oci ce node-pool delete --node-pool-id <node-pool-ocid> [OPTIONS]

Por ejemplo:

oci ce node-pool create \
--cluster-id ocid1.cluster.oc1.iad.aaa____qea \
--name finance-node-pool \
--node-image-id oocid1.image.oc1.iad.aaa______vpq \
--compartment-id ocid1.compartment.oc1..aaa____fda \
--kubernetes-version v1.24.1 \
--node-shape VM.Standard2.1 \
--placement-configs "[{\"availability-domain\":\"s__D:US-ASHBURN-AD-1\", \"subnet-id\":\"ocid1.subnet.oc1.iad.aaa______2sq\"}]" \
--size 1
kubectl drain 10.0.10.196
kubectl drain 10.0.10.18
kubectl drain 10.0.10.84
oci ce node-pool delete --node-pool-id ocid1.nodepool.oc1.iad.aaaaaaa______eya