Actualización de clusters a versiones más recientes de Kubernetes

Descubra las distintas formas de actualizar nodos de plano de control y nodos de trabajador a versiones más recientes de Kubernetes mediante Container Engine for Kubernetes (OKE).

Una vez publicada una nueva versión de Kubernetes y cuando Container Engine for Kubernetes soporta la nueva versión, puede actualizar la versión de Kubernetes que se ejecuta en los nodos de plano de control y los nodos de trabajador de un cluster.

Los nodos de plano de control y los nodos de trabajador que componen el cluster pueden ejecutar diferentes versiones de Kubernetes, siempre y cuando cumpla la política de soporte de sesgo de versión de Kubernetes descrita en la documentación de Kubernetes.

Los nodos de plano de control y los nodos de trabajador se actualizan de forma diferente:

  • Actualización de nodo de plano de control: puede actualizar los nodos de plano de control mediante la actualización del cluster y la especificación de una versión más reciente de Kubernetes para el cluster. Se actualizan los nodos de plano de control que ejecutan versiones anteriores de Kubernetes. Como Container Engine for Kubernetes distribuye el Plano de control de Kubernetes en varios nodos de plano de control gestionados por Oracle para garantizar una alta disponibilidad (distribuidos entre diferentes dominios de disponibilidad en una región en la que se soporte), podrá actualizar la versión de Kubernetes que se ejecuta en los nodos de plano de control sin tiempo de inactividad.

    Una vez actualizados los nodos de plano de control a una nueva versión de Kubernetes, puede crear posteriormente nuevos pools de nodos con nodos de trabajador que ejecuten la versión más reciente. También puede seguir creando nuevos pools de nodos con nodos de trabajador que ejecuten versiones anteriores de Kubernetes (siempre que estas versiones antiguas sean compatibles con la versión de Kubernetes que se ejecute en los nodos de plano de control).

    Para obtener más información sobre la actualización de nodo de plano de control, consulte Actualización de la versión de Kubernetes en nodos de plano de control de un cluster.

  • Actualización de nodo de trabajador: puede actualizar nodos gestionados, nodos autogestionados y nodos virtuales de forma diferente:
    • Actualización de nodo gestionado: puede actualizar los nodos de trabajador de una de las siguientes maneras:
      • Mediante una actualización "in situ" de un pool de nodos en el cluster, especificando una versión de Kubernetes más reciente para el pool de nodos existente y, a continuación, desplazando los nodos para sustituir automáticamente todos los nodos de trabajador existentes.
      • Mediante una actualización "in situ" de un pool de nodos del cluster, especificando una versión de Kubernetes más reciente para el pool de nodos existente y, a continuación, reemplazando manualmente cada nodo de trabajador existente por un nuevo nodo de trabajador.
      • Mediante una actualización externa de un pool de nodos en el cluster, sustituyendo el pool de nodos original por un pool de nodos nuevo para el que ha especificado una versión de Kubernetes más reciente.

      Para obtener más información sobre la actualización de nodos gestionados, consulte Actualización de nodos gestionados a una versión más reciente de Kubernetes.

    • Actualización de nodo autogestionado: actualice los nodos autogestionados sustituyendo un nodo autogestionado existente por un nuevo nodo autogestionado alojado en una nueva instancia informática. Para obtener más información sobre la actualización de nodos autogestionados, consulte Actualización de nodos autogestionados a una versión más reciente de Kubernetes mediante la sustitución de un nodo autogestionado existente.
    • Actualización de nodo virtual: actualice los nodos virtuales mediante la actualización de los nodos de plano de control de un cluster. Al actualizar la versión de Kubernetes que se ejecuta en nodos de plano de control, los nodos virtuales de cada pool de nodos virtuales del cluster también se actualizan automáticamente a esa versión de Kubernetes. Para obtener más información sobre la actualización de nodos virtuales, consulte Actualización de nodos virtuales a una versión más reciente de Kubernetes.

Para obtener más información sobre las versiones de Kubernetes soportadas actualmente y anteriormente por Container Engine for Kubernetes, consulte Versiones soportadas de Kubernetes.

Notas sobre la actualización de clusters

Tenga en cuenta lo siguiente al actualizar clusters:

  • Container Engine for Kubernetes solo actualiza la versión de Kubernetes que se ejecuta en nodos de plano de control cuando se inicia explícitamente la operación de actualización.
  • Después de actualizar los nodos de plano de control a una versión más reciente de Kubernetes, no puede volver a una versión anterior de Kubernetes.
  • Antes de actualizar la versión de Kubernetes que se ejecuta en los nodos de plano de control, es su responsabilidad probar que las aplicaciones desplegadas en el cluster sean compatibles con la nueva versión de Kubernetes. Por ejemplo, antes de actualizar el cluster existente, puede crear un nuevo cluster independiente con la nueva versión de Kubernetes para probar las aplicaciones.
  • Las versiones de Kubernetes que se ejecutan en los nodos de plano de control y los nodos de trabajador deben ser compatibles. Es decir, la versión de Kubernetes en los nodos de plano de control no debe ser superior a dos versiones secundarias (o tres versiones secundarias, a partir de la versión 1.28 de Kubernetes) por delante de la versión de Kubernetes en los nodos de trabajador. Consulte la política de soporte de sesgo de versión de Kubernetes descrita en la documentación de Kubernetes.
  • Si la versión de Kubernetes que se está ejecutando actualmente en los nodos de plano de control está a más de una versión por detrás de la versión soportada más reciente, tendrá la opción de actualizar. Si desea actualizar a una versión de Kubernetes que esté a más de una versión por delante de la versión que se está ejecutando actualmente en los nodos de plano de control, debe actualizar a cada versión intermedia en secuencia y sin omitir versiones (tal y como se describe en la documentación de Kubernetes).
  • Para actualizar correctamente los nodos de plano de control de un cluster, el servicio Panel de control de Kubernetes debe ser de tipo ClusterIP. Si el servicio Panel de control de Kubernetes no es de tipo ClusterIP (por ejemplo, si el servicio es de tipo NodePort), la actualización fallará. En este caso, cambie el tipo del servicio Panel de control de Kubernetes a ClusterIP (por ejemplo, introduciendo kubectl -n kube-system edit service kubernetes-dashboard y cambiando el tipo).

  • Antes de versión 1.14 de Kubernetes, Container Engine for Kubernetes creó clusters con kube-dns como servidor DNS. Sin embargo, a partir de la versión 1.14 de Kubernetes, Container Engine for Kubernetes crea clusters con CoreDNS como servidor DNS. Al actualizar un cluster creado por Container Engine for Kubernetes desde una versión anterior a Kubernetes 1.14 o posterior, el servidor kube-dns del cluster se sustituye automáticamente por el servidor CoreDNS. Tenga en cuenta que si personaliza el comportamiento kube-dns mediante el mapa de configuración de kube-dns original, esas personalizaciones no se transfieren al mapa de configuración de CoreDNS. Tendrá que crear y aplicar un nuevo mapa de configuración que contenga las personalizaciones para sustituir la configuración en el archivo del núcleo central de CoreDNS. Para obtener más información sobre la actualización a CoreDNS, consulte Configuración de servidores DNS para Clusters Kubernetes.