Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-09-10 GMT+08:00

Descripción de la actualización

CCE ha aprobado el Certified Kubernetes Conformance Program y es una oferta certificada de Kubernetes. Para habilitar la interoperabilidad de una instalación de Kubernetes a la siguiente, debe actualizar sus clústeres de Kubernetes antes de que finalice el período de mantenimiento.

Después de que la última versión de Kubernetes esté disponible en CCE, CCE describirá los cambios en esta versión.

Puede utilizar la consola de CCE para actualizar la versión de Kubernetes de un clúster.

Se mostrará un indicador de actualización en la vista de tarjeta de clúster si hay una nueva versión para que el clúster actualice.

Cómo comprobarlo:

Inicie sesión en la consola de CCE y compruebe si aparece el mensaje "New version available" en la esquina inferior izquierda del clúster. En caso afirmativo, se puede actualizar el clúster. Si no, el clúster no se puede actualizar.
Figura 1 Clúster con el indicador de actualización

Actualización de clúster

En la siguiente tabla se describe la versión de destino a la que se puede actualizar cada versión de clúster, los modos de actualización admitidos y los efectos de la actualización.

Tabla 1 Rutas de actualización de clústeres e impactos

Versión de origen

Versión actualizada

Modos de actualización

Impactos

v1.19

v1.21

Actualización local

Necesita aprender acerca de las diferencias entre versiones. Para obtener más información, véase Precauciones para la actualización de la versión principal.

v1.17

v1.15

v1.19

Actualización local

Necesita aprender acerca de las diferencias entre versiones. Para obtener más información, véase Precauciones para la actualización de la versión principal.

v1.13

v1.15

Actualización gradual

Actualización de reemplazar

  • proxy en el complemento de coredns no se puede configurar y necesita ser reemplazado por forward.
  • El complemento de almacenamiento se cambia de storage-driver a everest.

v1.11

v1.9

La última versión que se puede crear en la consola

Migración

Necesita aprender acerca de las diferencias entre versiones. Para obtener más información, véase Precauciones para la actualización de la versión principal.

v1.9.2

v1.7

La última versión que se puede crear en la consola

Migración

Necesita aprender acerca de las diferencias entre versiones. Para obtener más información, véase Precauciones para la actualización de la versión principal.

Modos de actualización

Los procesos de actualización son los mismos para los nodos maestros. Las diferencias entre los modos de actualización de los nodos de trabajo se describen de la siguiente manera:

Tabla 2 Diferencias entre los modos de actualización y sus ventajas y desventajas

Modo de actualización

Método

Ventaja

Desventaja

Actualización local

Los componentes de Kubernetes, componentes de red y componentes de gestión de CCE se actualizan en el nodo. Durante la actualización, los pods de servicio y las redes no se ven afectados. La etiqueta SchedulingDisabled se agregará a todos los nodos existentes. Una vez completada la actualización, puede utilizar correctamente los nodos existentes.

No es necesario migrar servicios, lo que garantiza la continuidad del servicio.

La actualización in situ no actualiza el sistema operativo de un nodo. Si desea actualizar el sistema operativo, borre los datos de nodo correspondientes una vez completada la actualización del nodo y restablezca el nodo para actualizar el sistema operativo a una nueva versión.

Actualización gradual

Solo los componentes de Kubernetes y ciertos componentes de red se actualizan en el nodo. La etiqueta SchedulingDisabled se agregará a todos los nodos existentes para garantizar que las aplicaciones en ejecución no se vean afectadas.

AVISO:
  • Una vez completada la actualización, debe crear manualmente nodos y liberar gradualmente los nodos antiguos para migrar sus aplicaciones a los nuevos nodos. En este modo, puede controlar el proceso de actualización.

Los servicios no se interrumpen.

  • Una vez completada la actualización, debe crear manualmente nodos y liberar gradualmente los nodos antiguos. Los nuevos nodos se facturan adicionalmente. Después de migrar los servicios a los nuevos nodos, se pueden eliminar los nodos antiguos.
  • Una vez completada la actualización continua, si desea continuar con la actualización a una versión posterior, primero debe restablecer los nodos antiguos. De lo contrario, no se puede pasar la comprobación previa a la actualización. Los servicios pueden ser interrumpidos durante la actualización.

Actualización de reemplazar

La última imagen del nodo de trabajo se utiliza para restablecer el sistema operativo del nodo.

Este es el modo de actualización más rápido y requiere pocas intervenciones manuales.

Los datos o configuraciones en el nodo se perderán, y los servicios se interrumpirán durante un período de tiempo.

Precauciones para la actualización de la versión principal

Ruta de actualización

Precaución

Autoverificación

v1.19 a v1.21

El error de exec probe timeouts se corrige en Kubernetes 1.21. Antes de esta corrección de errores, la sonda exec no tiene en cuenta el campo timeoutSeconds. En su lugar, la sonda se ejecutará indefinidamente, incluso más allá de su fecha límite configurada. Se detendrá hasta que se devuelva el resultado. Si no se especifica este campo, se utiliza el valor predeterminado 1. Este campo entra en vigor después de la actualización. Si el sondeo se ejecuta durante 1 segundo, la comprobación de estado de la aplicación puede fallar y la aplicación puede reiniciarse con frecuencia.

Antes de la actualización, compruebe si el tiempo de espera está configurado correctamente para la sonda exec.

kube-apiserver de CCE 1.19 o posterior requiere que el campo Subject Alternative Names (SANs) esté configurado para el certificado de su servidor webhook. De lo contrario, kube-apiserver no puede invocar al servidor webhook después de la actualización, y contenedores no se puede iniciar correctamente.

Causa raíz: X.509 CommonName se descarta en Go 1.15. kube-apiserver de CCE 1.19 se compila usando Go 1.15. Si su certificado webhook no tiene SAN, kube-apiserver no procesa el campo CommonName del certificado X.509 como nombre de host de forma predeterminada. Como resultado, la autenticación falla.

Antes de la actualización, compruebe si el campo SAN está configurado en el certificado de su servidor webhook.

  • Si no tiene su propio servidor webhook, puede omitir esta comprobación.
  • Si el campo no está definido, se recomienda utilizar el campo SAN para especificar la dirección IP y el nombre de dominio admitidos por el certificado.

v1.15 a v1.19

El plano de control de en los clústeres v1.19 es incompatible con kubelet v1.15. Si un nodo no se puede actualizar o el nodo que se va a actualizar se reinicia después de que el nodo principal se actualice con éxito, hay una alta probabilidad de que el nodo esté en el estado NotReady.

Esto se debe a que el nodo no puede actualizarse reinicia el kubelet y activa el registro del nodo. En los clústeres de v1.15, las etiquetas de registro predeterminadas failure-domain.beta.kubernetes.io/is-baremetal y kubernetes.io/availablezone son consideradas como etiquetas no válidas por los clústeres de v1.19.

Las etiquetas válidas en los clústeres de v1.19 son node.kubernetes.io/baremetal y failure-domain.beta.kubernetes.io/zone.

  1. En los casos normales, este escenario no se activa.
  2. Después de actualizar el nodo principal, no suspenda la actualización para que el nodo pueda actualizarse rápidamente.
  3. Si un nodo no se puede actualizar y no se puede restaurar, desaloje las aplicaciones en el nodo tan pronto como sea posible. Póngase en contacto con el soporte técnico y omita la actualización del nodo. Una vez completada la actualización, restablezca el nodo.

En los clústeres 1.15 y 1.19 de CCE, el sistema de archivos del controlador de almacenamiento de Docker cambia de XFS a Ext4. Como resultado, la secuencia de paquetes de importación en los pods de la aplicación Java actualizada puede ser anormal, causando excepciones de pod.

Antes de la actualización, compruebe el archivo de configuración de Docker /etc/docker/daemon.json en el nodo. Compruebe si el valor de dm.fs es de xfs.

  • Si el valor es de ext4 o el controlador de almacenamiento es Overlay, puede omitir los siguientes pasos.
  • Si el valor es de xfs, se recomienda desplegar aplicaciones en el clúster de la nueva versión con antelación para probar si las aplicaciones son compatibles con la nueva versión del clúster.
{
      "storage-driver": "devicemapper",
      "storage-opts": [
      "dm.thinpooldev=/dev/mapper/vgpaas-thinpool",
      "dm.use_deferred_removal=true",
      "dm.fs=xfs",
      "dm.use_deferred_deletion=true"
      ]
}

kube-apiserver de CCE 1.19 o posterior requiere que el campo Subject Alternative Names (SANs) esté configurado para el certificado de su servidor webhook. De lo contrario, kube-apiserver no puede invocar al servidor webhook después de la actualización, y contenedores no se puede iniciar correctamente.

Causa raíz: X.509 CommonName se descarta en Go 1.15. kube-apiserver de CCE 1.19 se compila usando Go 1.15. El campo CommonName se procesa como el nombre de host. Como resultado, la autenticación falla.

Antes de la actualización, compruebe si el campo SAN está configurado en el certificado de su servidor webhook.

  • Si no tiene su propio servidor webhook, puede omitir esta comprobación.
  • Si el campo no está definido, se recomienda utilizar el campo SAN para especificar la dirección IP y el nombre de dominio admitidos por el certificado.
AVISO:

Para mitigar el impacto de las diferencias de versión en la actualización del clúster, CCE realiza un procesamiento especial durante la actualización de 1.15 a 1.19 y sigue soportando certificados sin SAN. Sin embargo, no se requiere ningún procesamiento especial para las actualizaciones posteriores. Le aconsejamos que rectifique su certificado lo antes posible.

En clústeres de v1.17.17 y posteriores, CCE crea automáticamente políticas de seguridad de pods (PSP) para usted, que restringen la creación de pods con configuraciones inseguras, por ejemplo, pods para los que net.core.somaxconn bajo un sysctl está configurado en el contexto de seguridad.

Después de una actualización, puede permitir configuraciones de sistema inseguras según sea necesario. Para obtener más información, véase Configuración de una política de seguridad de pod.

v1.13 a v1.15

Después de actualizar un clúster de red de VPC, el nodo principal ocupa un bloque CIDR adicional debido a la actualización de los componentes de red. Si no hay ningún bloque CIDR contenedor disponible para el nuevo nodo, el pod programado para el nodo no puede ejecutarse.

Generalmente, este problema se produce cuando los nodos en el clúster están a punto de ocupar completamente el bloque CIDR contenedor. Por ejemplo, el bloque CIDR contenedor es 10.0.0.0/16, el número de direcciones IP disponibles es de 65,536 y a la red VPC se le asigna un bloque CIDR con el tamaño fijo (utilizando la máscara para determinar el número máximo de direcciones IP contenedor asignadas a cada nodo). Si el límite superior es 128, el clúster admite un máximo de 512 (65536/128) nodos, incluidos los tres nodos principales. Después de actualizar el clúster, cada uno de los tres nodos principales ocupa un bloque CIDR. Como resultado, se soportan 506 nodos.