Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se muestra cómo usar el mantenimiento planeado para programar y controlar las actualizaciones de imágenes de clúster y nodo en Azure Kubernetes Service (AKS).
El mantenimiento normal se realiza automáticamente en el clúster de AKS. Hay dos tipos de operaciones de mantenimiento:
- El mantenimiento iniciado por AKS implica las versiones semanales que AKS realiza para mantener el clúster actualizado con las características y correcciones más recientes.
- El mantenimiento iniciado por el usuario incluye actualizaciones automáticas del clúster y del sistema operativo (SO) del nodo.
Al usar la característica de mantenimiento planeado en AKS, puede ejecutar ambos tipos de mantenimiento en una cadencia de su elección para minimizar el impacto en la carga de trabajo.
Nota:
Puede usar el mantenimiento planeado para programar el tiempo de las actualizaciones automáticas, pero habilitar o deshabilitar el mantenimiento planeado no habilita ni deshabilita las actualizaciones automáticas.
Antes de empezar
- En este artículo se supone que ya tiene un clúster de AKS. Si no tiene un clúster de AKS, consulte Creación de un clúster de AKS.
- Si usa la CLI de Azure, actualice a la versión más reciente mediante el
az upgradecomando .
Consideraciones
Al usar mantenimiento planeado, se aplican las siguientes consideraciones:
- AKS se reserva el derecho de interrumpir las ventanas de mantenimiento planeado para operaciones de mantenimiento no planeadas, reactivas que sean urgentes o críticas. Estas operaciones de mantenimiento pueden incluso ejecutarse durante los períodos de
notAllowedTimeonotAllowedDatesdefinidos en la configuración. - Las operaciones de mantenimiento se consideran mejor esfuerzo solo y no se garantiza que se produzcan dentro de una ventana especificada.
Programar tipos de configuración para el mantenimiento planeado
Hay tres tipos de configuración de programación disponibles para el mantenimiento planeado:
defaultes una configuración básica para controlar las versiones de AKS, que abarca los componentes del plano de control y las actualizaciones de complementos del sistema. Las versiones pueden tardar hasta dos semanas en implementarse en todas las regiones desde el momento inicial del envío, debido a las prácticas de implementación seguras de Azure.Elija
defaultpara programar estas actualizaciones de la forma que le resulte menos molesta. Puede supervisar el estado de una versión de AKS en curso por región con el seguimiento de versiones semanales.aksManagedAutoUpgradeSchedulecontrola cuándo realizar actualizaciones de clúster programadas por el canal de actualización automática designado. Puede configurar opciones de cadencia y periodicidad más controladas con esta configuración en comparación con la configuracióndefault. Para más información sobre la actualización automática del clúster, consulte Actualización automática de un clúster de Azure Kubernetes Service.aksManagedNodeOSUpgradeSchedulecontrola cuándo se debe realizar la aplicación de revisiones de seguridad del sistema operativo del nodo programada por el canal de actualización automática del sistema operativo del nodo. Puede configurar opciones de cadencia y periodicidad más controladas con esta configuración en comparación con la configuracióndefault. Para obtener más información sobre los canales de actualización automática del sistema operativo del nodo, consulte Aplicar revisiones y actualizar automáticamente imágenes de nodo de clúster de AKS.
Se recomienda usar aksManagedAutoUpgradeSchedule para todos los escenarios de actualización de la versión de Kubernetes del clúster y aksManagedNodeOSUpgradeSchedule para todos los escenarios de revisión de seguridad del sistema operativo de nodo.
La opción default está pensada exclusivamente para versiones semanales de AKS. Use default si desea controlar la programación de actualización para los componentes del plano de control de AKS (como el servidor de API, ETCD, etc.) y los complementos (como CoreDNS, Metrics Server, etc.).
Los tres tipos de configuraciones pueden coexistir.
Creación de una ventana de mantenimiento
Nota:
Cuando se usa la actualización automática, para garantizar una funcionalidad adecuada, use una ventana de mantenimiento con una duración de cuatro horas o más.
Nota:
A partir de la versión de API 2023-05-01 en adelante, use las propiedades de la tabla siguiente para la configuración de default.
Una ventana de mantenimiento de aksManagedAutoUpgradeSchedule o aksManagedNodeOSUpgradeSchedule, y una configuración de default desde la versión 2023-05-01 de la API en adelante tiene las siguientes propiedades:
| Nombre | Descripción | Valor predeterminado |
|---|---|---|
utcOffset |
Zona horaria para el mantenimiento del clúster. | +00:00 |
startDate |
La fecha en la que comienza a surtir efecto la ventana de mantenimiento. | La fecha actual en la hora de creación. |
startTime |
Hora de inicio del mantenimiento, en función de la zona horaria determinada por utcOffset. |
No aplicable |
schedule |
Frecuencia de actualización. Hay disponibles tres tipos: Weekly, AbsoluteMonthly, y RelativeMonthly. |
No aplicable |
intervalDays |
Intervalo en días para las ejecuciones de mantenimiento. Solo es aplicable a aksManagedNodeOSUpgradeSchedule. |
No aplicable |
intervalWeeks |
El intervalo en semanas para ejecuciones de mantenimiento. | No aplicable |
intervalMonths |
El intervalo en meses para ejecuciones de mantenimiento. | No aplicable |
dayOfWeek |
El día especificado de la semana para que comience el mantenimiento. | No aplicable |
durationHours |
La duración de la ventana para que se ejecute el mantenimiento. | No aplicable |
notAllowedDates |
Intervalo de fechas que el mantenimiento no se puede ejecutar, determinado por las propiedades secundariasstart y end. Solo es aplicable cuando se crea la ventana de mantenimiento mediante un archivo de configuración. |
No aplicable |
Propiedades en desuso
Nota:
Si crea una default configuración con las siguientes propiedades en desuso, se migra automáticamente a las nuevas propiedades que se muestran en la tabla anterior.
[En desuso] Una default ventana de mantenimiento tiene las siguientes propiedades heredadas:
| Nombre | Descripción | Valor predeterminado |
|---|---|---|
timeInWeek |
En una configuración default, esta propiedad contiene los valores day y hourSlots que definen una ventana de mantenimiento. |
No aplicable |
timeInWeek.day |
El día de la semana para realizar el mantenimiento en una configuración default |
No aplicable |
timeInWeek.hourSlots |
Lista de intervalos de tiempo de larga duración para realizar el mantenimiento en un día determinado en una configuración default. |
No aplicable |
notAllowedTime |
Intervalo de fechas que el mantenimiento no se puede ejecutar, determinado por las propiedades secundariasstart y end. Esta propiedad solo es aplicable cuando se crea la ventana de mantenimiento mediante un archivo de configuración. |
No aplicable |
Tipos de programación
Se admiten cuatro tipos de programación: Daily, Weekly, AbsoluteMonthlyy RelativeMonthly.
En la tabla siguiente se muestran los tipos disponibles para cada opción de configuración de mantenimiento:
| Tipo de programación | default |
aksManagedClusterAutoUpgradeSchedule |
aksManagedNodeOSUpgradeSchedule |
|---|---|---|---|
| Diariamente | Sin fundamento ❌ | Compatible ✅ (después de junio de 2025) | Se ha agregado compatibilidad con ✅. |
| Weekly | Se ha agregado compatibilidad con ✅. | Se ha agregado compatibilidad con ✅. | Se ha agregado compatibilidad con ✅. |
| AbsoluteMonthly | Sin fundamento ❌ | Se ha agregado compatibilidad con ✅. | Se ha agregado compatibilidad con ✅. |
| RelativeMonthly | Sin fundamento ❌ | Se ha agregado compatibilidad con ✅. | Se ha agregado compatibilidad con ✅. |
Se requieren todos los campos que se muestran para cada tipo de programación.
Una programación Daily podría ser similar a "cada tres días":
"schedule": {
"daily": {
"intervalDays": 3
}
}
Una programación de Weekly podría parecerse a "cada dos semanas el viernes":
"schedule": {
"weekly": {
"intervalWeeks": 2,
"dayOfWeek": "Friday"
}
}
Una programación de AbsoluteMonthly podría parecerse a "cada tres meses en el primer día del mes":
"schedule": {
"absoluteMonthly": {
"intervalMonths": 3,
"dayOfMonth": 1
}
}
Una programación de RelativeMonthly podría ser similar a "cada dos meses del último lunes":
"schedule": {
"relativeMonthly": {
"intervalMonths": 2,
"dayOfWeek": "Monday",
"weekIndex": "Last"
}
}
Los valores válidos para weekIndex incluyen First, Second, Third, Fourth y Last.
Adición de una configuración de ventana de mantenimiento
Agregue una configuración de ventana de mantenimiento a un clúster de AKS mediante el az aks maintenanceconfiguration add comando .
En el primer ejemplo se agrega una nueva default configuración que programa el mantenimiento para que se ejecute de 1:00 a 5:00 a. m. cada lunes en la UTC zona horaria. En el segundo ejemplo se agrega una nueva configuración de aksManagedAutoUpgradeSchedule que programa el mantenimiento para ejecutarse cada tercer viernes entre las 12:00 a. m. y las 8:00 a. m., en la zona horaria de UTC+5:30.
# Add a new default configuration
az aks maintenanceconfiguration add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name default --schedule-type Weekly --day-of-week Monday --interval-weeks 1 --duration 4 --utc-offset +00:00 --start-time 01:00
# Add a new aksManagedAutoUpgradeSchedule configuration
az aks maintenanceconfiguration add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name aksManagedAutoUpgradeSchedule --schedule-type Weekly --day-of-week Friday --interval-weeks 3 --duration 8 --utc-offset +05:30 --start-time 00:00
Actualización de una ventana de mantenimiento existente
Actualice una configuración de mantenimiento existente mediante el az aks maintenanceconfiguration update comando .
En el ejemplo siguiente se actualiza la default configuración para programar el mantenimiento para que se ejecute de 2:00 a. m. a 6:00 a. m. todos los viernes:
az aks maintenanceconfiguration update --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name default --schedule-type Weekly --day-of-week Friday --interval-weeks 1 --duration 4 --utc-offset +00:00 --start-time 02:00
Enumeración de todas las ventanas de mantenimiento en un clúster existente
Enumere las ventanas de configuración de mantenimiento actuales del clúster de AKS mediante el az aks maintenanceconfiguration list comando :
az aks maintenanceconfiguration list --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME
Mostrar una ventana de configuración de mantenimiento específica en un clúster existente
Vea una ventana de configuración de mantenimiento específica en el clúster de AKS mediante el comando
az aks maintenanceconfiguration show --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name aksManagedAutoUpgradeSchedule
En la salida de ejemplo siguiente se muestra la ventana de mantenimiento para aksManagedAutoUpgradeSchedule:
{
"id": "/subscriptions/<subscription>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/maintenanceConfigurations/aksManagedAutoUpgradeSchedule",
"maintenanceWindow": {
"durationHours": 4,
"notAllowedDates": [
{
"end": "2024-01-05",
"start": "2023-12-23"
}
],
"schedule": {
"absoluteMonthly": {
"dayOfMonth": 1,
"intervalMonths": 3
},
"daily": null,
"relativeMonthly": null,
"weekly": null
},
"startDate": "2023-01-20",
"startTime": "09:00",
"utcOffset": "-08:00"
},
"name": "aksManagedAutoUpgradeSchedule",
"notAllowedTime": null,
"resourceGroup": "myResourceGroup",
"systemData": null,
"timeInWeek": null,
"type": null
}
Eliminación de una ventana de configuración de mantenimiento en un clúster existente
Elimine una ventana de configuración de mantenimiento en el clúster de AKS mediante el az aks maintenanceconfiguration delete comando .
En el ejemplo siguiente se elimina la configuración de mantenimiento de autoUpgradeSchedule:
az aks maintenanceconfiguration delete --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name autoUpgradeSchedule
Preguntas más frecuentes (FAQ)
¿Cómo puedo comprobar las configuraciones de mantenimiento existentes en el clúster?
Use el comando az aks maintenanceconfiguration show.
¿También se puede producir un mantenimiento reactivo y no planeado durante los notAllowedDates períodos?
Sí. AKS se reserva el derecho de interrumpir estas ventanas para operaciones de mantenimiento reactivas no planeadas que sean urgentes o críticas.
¿Cómo puedo saber si se ha producido un evento de mantenimiento?
En el caso de las versiones, compruebe la región del clúster y busque información en versiones semanales para ver si coincide con la programación de mantenimiento. Para ver el estado de las actualizaciones automáticas, busque registros de actividad en el clúster. También puede buscar eventos específicos relacionados con la actualización, como se mencionó en Actualización de un clúster de AKS.
AKS también emite eventos de Azure Event Grid relacionados con la actualización. Para obtener más información, consulte AKS como origen de Event Grid.
¿Puedo usar más de una configuración de mantenimiento al mismo tiempo?
Sí, puede ejecutar las tres configuraciones simultáneamente: default, aksManagedAutoUpgradeSchedule, y aksManagedNodeOSUpgradeSchedule. Si las ventanas se superponen, AKS decide el orden de ejecución.
He configurado una ventana de mantenimiento, pero no se ha producido la actualización. ¿Por qué?
La actualización automática de AKS necesita una cierta cantidad de tiempo, habitualmente menos de 15 minutos, para tener en cuenta la ventana de mantenimiento. Se recomiendan al menos 15 horas entre la creación o actualización de una configuración de mantenimiento y la hora de inicio programada.
Además, asegúrese de que el clúster se inicia cuando se inicia la ventana de mantenimiento planeado. Si se detiene el clúster, se desasigna su plano de control y no se puede realizar ninguna operación.
¿Por qué se ha actualizado uno de mis grupos de agentes fuera de la ventana de mantenimiento?
Si no se actualiza un grupo de agentes (por ejemplo, porque los presupuestos de interrupción del pod lo impedían), podría actualizarse más adelante, fuera de la ventana de mantenimiento. Este escenario se conoce como actualización acumulativa. Evita permitir que los grupos de agentes se actualicen con una versión diferente del plano de control de AKS.
Otro motivo por el que un grupo de agentes se podría actualizar inesperadamente es cuando no hay ninguna configuración de mantenimiento definida o si se eliminó. En ese caso, un clúster que se actualiza automáticamente pero sin una configuración de mantenimiento se actualiza en momentos aleatorios (programación de reserva), lo cual puede no ser el momento deseado.
¿Existen procedimientos recomendados para las configuraciones de mantenimiento?
Se recomienda establecer la programación de actualizaciones de seguridad del sistema operativo del nodo en una cadencia semanal si usa el canal NodeImage, ya que se envía una nueva imagen de nodo cada semana. También puede optar por el canal SecurityPatch para recibir actualizaciones de seguridad diarias.
Puede establecer la programación de actualización automática en una cadencia mensual para mantenerse al día con la directiva de soporte técnico de Kubernetes N-2.
Para obtener una explicación detallada de los procedimientos recomendados de actualización y otras consideraciones, consulte Guía de actualización y revisión de AKS.
¿Puedo configurar todos mis clústeres de una misma suscripción para que usen la misma configuración de mantenimiento?
No se recomienda usar la misma configuración de mantenimiento para varios clústeres de una misma suscripción, ya que, al hacerlo, se pueden producir errores de limitación de ARM, lo que provoca un error en las actualizaciones del clúster. En su lugar, se recomienda escalonar las ventanas de mantenimiento de cada clúster para evitar estos errores.
¿Por qué mis grupos de nodos se actualizaron dos veces durante la misma ventana de mantenimiento?
Si hay disponible una versión más reciente de la imagen de nodo durante la ventana de mantenimiento, AKS realiza una segunda actualización para asegurarse de que los grupos de nodos ejecutan la versión más reciente. Este comportamiento es normal y no indica un problema.
Contenido relacionado
Para empezar a actualizar el clúster de AKS, consulte Opciones de actualización para clústeres de AKS.