Actualización de nodos autogestionados a una versión más reciente de Kubernetes mediante la sustitución de un nodo autogestionado existente

Descubra cómo actualizar la versión de Kubernetes que se ejecuta en un nodo autogestionado en un cluster mejorado creado con Container Engine for Kubernetes.

Nota

Esta sección solo se aplica a nodos autogestionados. Para obtener información sobre la actualización de nodos gestionados, consulte Actualización de nodos gestionados a una versión más reciente de Kubernetes.

Puede "actualizar" la versión de Kubernetes que se ejecuta en un nodo autogestionado sustituyendo el nodo autogestionado original por un nuevo nodo autogestionado que ejecuta la versión más reciente de Kubernetes. Una vez drenado el nodo autogestionado original para evitar que se inicien nuevos pods y para suprimir los pods existentes, puede terminar la instancia informática que aloja el nodo autogestionado original.

Tenga en cuenta que al crear el nuevo nodo autogestionado, es su responsabilidad especificar una imagen que contenga una versión de Kubernetes que cumpla con la política de soporte de sesgo de versión de Kubernetes descrita en la documentación de Kubernetes. Container Engine for Kubernetes no comprueba que la versión de Kubernetes de la imagen que especifique para el nuevo nodo autogestionado sea compatible con la versión de Kubernetes que se ejecuta en los nodos de plano de control del cluster. Consulte Cluster Requirements.

Para "actualizar" la versión de Kubernetes que se ejecuta en un nodo autogestionado mediante la sustitución del nodo autogestionado original por un nuevo nodo autogestionado:

  1. Cree una nueva instancia informática para alojar el nuevo nodo autogestionado:
    1. Abra el menú de navegación y haga clic en Recursos informáticos. En Recursos informáticos, haga clic en Instancias.
    2. Siga las instrucciones de la documentación del servicio informático para crear una nueva instancia informática. Tenga en cuenta que deben existir las políticas adecuadas para permitir que la nueva instancia informática se una al cluster mejorado. Consulte Creación de un grupo dinámico y una política para nodos autogestionados.
    3. En la sección Imagen y unidad, haga clic en Cambiar imagen.
    4. Haga clic en Mis imágenes, seleccione la opción OCID de imagen y, a continuación, introduzca el OCID de la imagen de Oracle Linux 7 (OL7) u Oracle Linux 8 (OL8) de OKE que ejecuta la versión más reciente de Kubernetes. Consulte Requisitos de imagen.
    5. Haga clic en Mostrar opciones avanzadas y, en el separador Gestión, seleccione la opción Pegar script cloud-init.
    6. Copie y pegue el script cloud-init que contiene el punto final privado de la API de Kubernetes y el certificado de CA codificado con base64 en el campo Script de Cloud-init. Consulte Creación de scripts de Cloud-init para nodos autogestionados.
    7. Haga clic en Crear para crear la instancia informática para alojar el nodo autogestionado.

    Cuando se crea la instancia informática, se agrega como nodo autogestionado al cluster con el punto final de API de Kubernetes especificado.

  2. Verifique que el nodo autogestionado se haya agregado al cluster de Kubernetes y confirme el estado de preparación del nodo introduciendo:
    kubectl get nodes

    Por ejemplo:

    kubectl get nodes
    
    NAME           STATUS   ROLES    AGE   VERSION
    10.0.103.170   Ready    <none>   40m   v1.25.4
  3. Confirme que las etiquetas se han agregado al nodo y que se han definido como se esperaba introduciendo:
    kubectl get node <node-name> -o json | jq '.metadata.labels'

    Por ejemplo,

    kubectl get node 10.0.103.170 -o json | jq '.metadata.labels'
    
    {
    ...
    "displayName": "oke-self-managed-node",
    "oci.oraclecloud.com/node.info.byon": "true",
    ...
    }
  4. Si hay etiquetas asociadas al nodo autogestionado original y esas etiquetas son utilizadas por selectores (por ejemplo, para determinar los nodos en los que ejecutar pods), use el comando kubectl label nodes para conectar las mismas etiquetas al nuevo nodo autogestionado. Consulte Asignación de pods a nodos en la documentación de Kubernetes.
  5. Evite que los nuevos pods se inicien y suprima los pods existentes en el nodo autogestionado original 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.

  6. Cuando haya drenado el nodo autogestionado original y los pods se estén ejecutando en el nuevo nodo autogestionado, termine la instancia informática que aloja el nodo autogestionado original. Consulte Terminación de una instancia.