Partekatu honen bidez:


Inicio y detención de un clúster de Azure Kubernetes Service (AKS)

Es posible que no necesite ejecutar continuamente Azure Kubernetes Service (AKS). Por ejemplo, puede tener un clúster de desarrollo que solo use durante el horario comercial. Esto significa que habrá veces en los que el clúster pueda estar inactivo, sin ejecutar nada más que los componentes del sistema. Para reducir la superficie del clúster, escale todos los grupos de nodos User a 0, aunque siga siendo necesario que el grupo System ejecute los componentes del sistema mientras el clúster está en ejecución.

Para optimizar mejor los costos durante estos períodos, puede desactivar o detener el clúster. Esta acción detiene el plano de control y los nodos del agente, lo que permite ahorrar en todos los costos de proceso, a la vez que se mantienen todos los objetos, excepto pods independientes. El estado del clúster se almacena para cuando se vuelve a iniciar, lo que le permite recuperar dónde se dejó.

Precaución

Al detener el clúster, se desasigna el plano de control y se libera la capacidad. En las regiones que experimentan restricciones de capacidad, es posible que los clientes no puedan iniciar un clúster detenido. Por este motivo, no se recomienda detener cargas de trabajo críticas.

Nota:

Las operaciones de inicio de AKS restaurarán todos los objetos de ETCD con la excepción de los pods independientes con los mismos nombres y edades. lo que significa que la antigüedad de un pod se seguirá calculando a partir de su hora de creación original. Este recuento seguirá aumentando con el tiempo, independientemente de si el clúster está en un estado detenido.

Antes de empezar

Este artículo supone que ya tiene un clúster de AKS. Si necesita un clúster de AKS, puede crear uno mediante la CLI de Azure, Azure PowerShell o Azure Portal.

Acerca de la característica de detención o inicio del clúster

Cuando se usa la característica de inicio o detención del clúster, se aplican las condiciones siguientes:

  • Esta característica solo se admite para clústeres respaldados por el conjunto de escalado de máquinas virtuales (VMSS).
  • No se pueden detener los clústeres que usan la característica de aprovisionamiento automático de nodos (NAP).
  • El estado de clúster de un clúster de AKS detenido se conserva durante un máximo de 12 meses. Si el clúster se detiene durante más de 12 meses, no se puede recuperar el estado. Para obtener más información, vea Directivas de soporte técnico para AKS.
  • Solo puede realizar tareas de inicio o eliminación en un clúster de AKS detenido. Para realizar otras operaciones, como el escalado o la actualización, primero debe iniciar el clúster.
  • Si provisiona y vincula PrivateEndpoints al clúster privado, será necesario eliminarlos y volver a crearlos al iniciar un clúster de AKS detenido.
  • Dado que el proceso de detenerse purga todos los nodos, se eliminarán los pods independientes (es decir, los pods no administrados por una implementación, StatefulSet, DaemonSet, job, etc.).
  • Al iniciar la copia de seguridad del clúster, se espera el siguiente comportamiento:
    • La dirección IP del servidor de API puede cambiar.
    • Si usa el escalador automático de clústeres, al iniciar el clúster, es posible que el número de nodos actual no esté entre los valores de intervalo mínimo y máximo establecidos. El clúster comienza con el número de nodos que necesita para ejecutar sus cargas de trabajo, que no se verá afectados por la configuración del escalador automático. Cuando el clúster realiza operaciones de escalado, los valores mínimo y máximo afectarán al número de nodos actual y el clúster finalmente entrará en ese intervalo deseado, en el que permanecerá hasta que lo detenga.

Detención de un clúster de AKS

  1. Use el comando az aks stop para detener los nodos y el plano de control que incluyen los clústeres de AKS en ejecución. En el siguiente ejemplo se detiene un clúster denominado myAKSCluster:

    az aks stop --name myAKSCluster --resource-group myResourceGroup
    
  2. Compruebe que el clúster ha dejado de usar el comando az aks show y confirme que powerState se muestra como Stopped.

    az aks show --name myAKSCluster --resource-group myResourceGroup
    

    El resultado debería ser similar al siguiente ejemplo reducido:

    {
    [...]
      "nodeResourceGroup": "MC_myResourceGroup_myAKSCluster_westus2",
      "powerState":{
        "code":"Stopped"
      },
      "privateFqdn": null,
      "provisioningState": "Succeeded",
      "resourceGroup": "myResourceGroup",
    [...]
    }
    

    Si provisioningState muestra Stopping, el clúster aún no se ha detenido por completo.

Importante

Si usa presupuestos de interrupciones de pods, la operación de detención puede tardar más tiempo, ya que el proceso de purga tarda más en finalizar.

Inicio de un clúster de AKS

Precaución

Después de usar la característica start/stop en AKS, es esencial esperar entre 15 y 30 minutos antes de reiniciar el clúster de AKS. Este período de espera es necesario porque los servicios pertinentes tardan varios minutos en detenerse por completo. Intentar reiniciar el clúster durante este proceso puede interrumpir el proceso de apagado y provocar problemas potenciales con el clúster o sus cargas de trabajo.

  1. Use el comando az aks start para iniciar un clúster de AKS detenido. El clúster se reinicia con el estado del plano de control y el número de nodos de agente anteriores. En el siguiente ejemplo se inicia un clúster denominado myAKSCluster:

    az aks start --name myAKSCluster --resource-group myResourceGroup
    
  2. Compruebe que el clúster ha dejado de usar el comando az aks show y confirme que powerState muestra Running.

    az aks show --name myAKSCluster --resource-group myResourceGroup
    

    El resultado debería ser similar al siguiente ejemplo reducido:

    {
    [...]
      "nodeResourceGroup": "MC_myResourceGroup_myAKSCluster_westus2",
      "powerState":{
        "code":"Running"
     },
     "privateFqdn": null,
     "provisioningState": "Succeeded",
     "resourceGroup": "myResourceGroup",
    [...]
    }
    

    Si provisioningState muestra Starting, significa que el clúster aún no se ha iniciado por completo.

Pasos siguientes