Share via


Actualización de un clúster de Kubernetes De Operador de Azure Nexus

En este artículo se proporcionan instrucciones sobre cómo actualizar un clúster de Kubernetes de Operator Nexus para obtener las características y actualizaciones de seguridad más recientes. Parte del ciclo de vida del clúster de Kubernetes implica realizar actualizaciones periódicas a la versión más reciente de Kubernetes. Es importante que aplique las versiones de seguridad más recientes o que actualice el software para obtener las últimas características. En este artículo se muestra cómo comprobar, configurar y aplicar actualizaciones al clúster de Kubernetes.

Limitaciones

  • El proceso de actualización del clúster es un enfoque de escalado horizontal, lo que significa que se agrega al menos un nodo adicional (o tantos nodos como configurados en aumento máximo). Si no hay suficiente capacidad disponible, la actualización no se realizará correctamente.
  • Cuando haya nuevas versiones de Kubernetes disponibles, los clústeres de inquilinos no se someten a actualizaciones automáticas. Los usuarios deben iniciar la actualización cuando todas las funciones de red del clúster estén listas para admitir la nueva versión de Kubernetes. Para más información, consulte Actualización del clúster.
  • Operator Nexus ofrece actualizaciones en todo el clúster, lo que garantiza la coherencia en todos los grupos de nodos. No se admite la actualización de un único grupo de nodos. Además, la imagen del nodo se actualiza como parte de la actualización del clúster cuando hay disponible una nueva versión.
  • Las personalizaciones realizadas en los nodos del agente se perderán durante las actualizaciones del clúster. Se recomienda colocar estas personalizaciones en lugar de realizar cambios manuales en DaemonSet la configuración del nodo para conservarlas después de la actualización.
  • Las modificaciones realizadas en las configuraciones de complementos principales se restauran a la configuración de complemento predeterminada como parte del proceso de actualización del clúster. Evite personalizar la configuración del complemento (por ejemplo, Calico, etc.) para evitar posibles errores de actualización. Si la restauración de la configuración del complemento encuentra problemas, podría provocar errores de actualización.
  • Al actualizar el clúster de Kubernetes Operator Nexus, no se pueden omitir las versiones secundarias de Kubernetes. Debe hacer las actualizaciones secuencialmente con arreglo al número de versión principal. Por ejemplo, se admiten las actualizaciones entre 1.14.x y >1.15.x o 1.15.x a >1.16.x, pero no 1.14.x a >1.16.x. Si la versión está detrás de más de una versión principal, debe realizar varias actualizaciones secuenciales.
  • Los valores máximos de sobrecarga deben establecerse durante la creación del clúster. No se pueden cambiar los valores máximos de sobrecarga después de crear el clúster. Para más información, consulte upgradeSettingsCreación de un clúster de Kubernetes Nexus de operador de Azure.

Requisitos previos

  • Un clúster de Kubernetes nexus de Operador de Azure implementado en un grupo de recursos de la suscripción de Azure.
  • Si usa la CLI de Azure, este artículo requiere que ejecute la versión más reciente de la CLI de Azure. Si necesita instalarla o actualizarla, consulte Instalación de la CLI de Azure
  • Comprenda el concepto de agrupaciones de versiones. Para más información, consulte Paquetes de versiones de Nexus Kubernetes.

Comprobación de las actualizaciones disponibles

Para comprobar qué versiones de Kubernetes están disponibles para su clúster, use los pasos siguientes:

Uso de CLI de Azure

El siguiente comando de la CLI de Azure devuelve las actualizaciones disponibles para el clúster:

az networkcloud kubernetescluster show --name <NexusK8sClusterName> --resource-group <ResourceGroup> --output json --query availableUpgrades

Resultados del ejemplo:

[
  {
    "availabilityLifecycle": "GenerallyAvailable",
    "version": "v1.25.4-4"
  },
  {
    "availabilityLifecycle": "GenerallyAvailable",
    "version": "v1.25.6-1"
  },
  {
    "availabilityLifecycle": "GenerallyAvailable",
    "version": "v1.26.3-1"
  }
]

Uso de Azure Portal

  1. Inicie sesión en Azure Portal.
  2. Vaya al clúster de Operator Nexus Kubernetes.
  3. En Información general, seleccione la pestaña Actualizaciones disponibles.

Screenshot of available upgrades.

Elegir una versión a la que actualizar

La salida de actualización disponible indica que hay varias versiones entre las que elegir para actualizar. En este escenario específico, el clúster actual funciona en la versión v1.25.4-3. como resultado, las opciones de actualización disponibles incluyen v1.25.4-4 y la versión de revisión v1.25.6-1. más reciente Además, también hay disponible una nueva versión secundaria.

Tiene la flexibilidad de actualizar a cualquiera de las versiones disponibles. Sin embargo, el curso de acción recomendado es realizar la actualización a la versión disponible major-minor-patch-versionbundle más reciente.

Nota:

El formato de entrada de la versión es major.minor.patch o major.minor.patch-versionbundle. La entrada de versión debe ser una de las versiones de actualización disponibles. Por ejemplo, si la versión actual del clúster es 1.1.1-1, las entradas de versión válidas son 1.1.1-2 o 1.1.1-x. Aunque 1.1.1 es un formato válido, no desencadenará ninguna actualización porque la versión actual ya 1.1.1es . Para iniciar una actualización, puede especificar la versión completa con la agrupación de versiones, como 1.1.1-2. Sin embargo, 1.1.2 y 1.2.x son una entrada válida y usarán el paquete de versiones más reciente disponible para 1.1.2 o 1.2.x.

Actualización del clúster

Durante el proceso de actualización del clúster, Operator Nexus realiza las siguientes operaciones:

  • Agregue un nuevo nodo de plano de control con la versión de Kubernetes especificada al clúster.
  • Una vez agregado el nuevo nodo, acordonar y purgar uno de los nodos antiguos del plano de control, lo que garantiza que las cargas de trabajo que se ejecutan en él se muevan correctamente a otros nodos del plano de control correctos.
  • Una vez que se ha purgado el nodo del plano de control anterior, se quita y se agrega un nuevo nodo del plano de control al clúster.
  • Este proceso se repite hasta que se hayan actualizado todos los nodos del plano de control del clúster.
  • Para cada grupo de agentes del clúster, agregue un nuevo nodo de trabajo (o tantos nodos como configurados en aumento máximo) con la versión de Kubernetes especificada. Varios grupos de agentes se actualizan simultáneamente.
  • Acordonar y purgar uno de los nodos de trabajo antiguos para minimizar la interrupción de las aplicaciones en ejecución. Si usa el aumento máximo, acordona y purga tantos nodos de trabajo al mismo tiempo como el número de nodos de búfer especificados.
  • Una vez que se ha purgado el nodo de trabajo anterior, se quita y se agrega un nuevo nodo de trabajo con la nueva versión de Kubernetes al clúster (o tantos nodos como configurados en aumento máximo).
  • Este proceso se repite hasta que se hayan actualizado todos los nodos de trabajo del clúster.

Importante

Asegúrese de que cualquier PodDisruptionBudgets (PDB) permita mover al menos una réplica de pod a la vez; de lo contrario, se producirá un error en la operación de purga o desalojado. Si se produce un error en la operación de purga, también se producirá un error en la operación de actualización para asegurarse de que las aplicaciones no se interrumpen. Corrija lo que hizo que la operación se detenga (es decir, archivos PDF incorrectos, falta de cuota, etc.) y vuelva a intentar la operación.

  1. Actualice el clúster mediante el comando networkcloud kubernetescluster update.
az networkcloud kubernetescluster update --name myNexusK8sCluster --resource-group myResourceGroup --kubernetes-version v1.26.3
  1. Confirme que la actualización se completó correctamente con el comando show.
az networkcloud kubernetescluster show --name myNexusK8sCluster --resource-group myResourceGroup --output json --query kubernetesVersion

En la salida de ejemplo siguiente se muestra que el clúster ahora ejecuta la versión 1.26.3:

"v1.26.3"
  1. Asegúrese de que el clúster está en buen estado.
az networkcloud kubernetescluster show --name myNexusK8sCluster --resource-group myResourceGroup --output table

En la salida de ejemplo siguiente se muestra que el clúster está en buen estado:

Name                 ResourceGroup          ProvisioningState    DetailedStatus    DetailedStatusMessage             Location
------------------   ---------------------  -------------------  ----------------  --------------------------------  --------------
myNexusK8sCluster    myResourceGroup        Succeeded            Available         Cluster is operational and ready  southcentralus

Personalización de la actualización de sobrecargas de nodo

De forma predeterminada, Operator Nexus configura las actualizaciones para aumentar con un nodo de trabajo adicional. Un valor predeterminado de uno para la configuración de sobrecarga máxima permite al Operador Nexus minimizar la interrupción de la carga de trabajo mediante la creación de un nodo adicional antes de la acordonación o purga de las aplicaciones existentes para reemplazar un nodo con versiones anteriores. El valor de sobrecarga máxima se puede personalizar por grupo de nodos para permitir un equilibrio entre la velocidad de actualización y la interrupción de la actualización. Al aumentar el valor máximo de sobrecarga, el proceso de actualización se completa más rápido. Si establece un valor grande para la sobrecarga máxima, es posible que experimente interrupciones durante el proceso de actualización.

Por ejemplo, un valor de sobrecarga máxima del 100 % proporciona el proceso de actualización más rápido posible (se duplica el número de nodos), pero también hace que todos los nodos del grupo de nodos se purguen simultáneamente. Es posible que quiera usar un valor más alto, como este, para los entornos de prueba. En el caso de los grupos de nodos de producción, se recomienda un valor de sobrecarga máxima del 33 %.

La API acepta valores enteros y un valor de porcentaje para el aumento máximo. Un entero, como 5, indica cinco nodos adicionales para la sobrecarga. Un valor de 50 % indica un valor de sobrecarga de la mitad del número de nodos actual del grupo. Los valores de porcentaje de sobrecarga máxima pueden ser de 1 % como mínimo y 100 % como máximo. Un valor de porcentaje se redondea al número de nodos más próximo. Si el valor máximo de sobrecarga es mayor que el número necesario de nodos que se van a actualizar, el número de nodos que se actualicen se usa como valor máximo de sobrecarga.

Durante una actualización, el valor de sobrecarga máxima puede ser 1 como mínimo y un valor igual al número de nodos del grupo de nodos como máximo. Puede establecer valores mayores, pero el número máximo de nodos que se usan para la sobrecarga máxima no es mayor que el número de nodos del grupo en el momento de la actualización.

Importante

Las cargas de trabajo de Kubernetes estándar recorren de forma nativa los nuevos nodos cuando se purgan de los nodos que se están descomponiéndose. Tenga en cuenta que operator Nexus Kubernetes service no puede hacer promesas de carga de trabajo para comportamientos de Kubernetes no estándar.

Pasos siguientes