Zastavení a spuštění clusteru Azure Kubernetes Service (AKS)

Možná nebudete muset nepřetržitě spouštět úlohy Azure Kubernetes Service (AKS). Můžete mít například vývojový cluster, který používáte jenom během pracovní doby. To znamená, že váš cluster může být nečinný a neběží nic jiného než systémové komponenty. Nároky na cluster můžete snížit škálováním všech User fondů uzlů na 0, ale váš System fond je stále nutný ke spuštění systémových komponent během běhu clusteru.

Pokud chcete v těchto obdobích lépe optimalizovat náklady, můžete cluster vypnout nebo zastavit. Tato akce zastaví kontrolní rovinu a uzly agentů, což vám umožní snížit veškeré náklady na výpočetní prostředky, zatímco zachováte všechny objekty kromě samostatných podů. Stav clusteru je uložen pro případ, že ho znovu spustíte, což vám umožní pokračovat tam, kde jste skončili.

Upozornění

Zastavení clusteru dealokuje řídicí rovinu a uvolní kapacitu. V oblastech, u kterých dochází k omezením kapacity, nemusí zákazníci spustit zastavený cluster. Z tohoto důvodu nedoporučujeme zastavovat klíčové úlohy.

Poznámka:

Spouštěcí operace AKS obnoví všechny objekty z ETCD s výjimkou samostatných podů se stejnými názvy a věky. to znamená, že věk podu bude i nadále vypočítán z původního času vytváření. Tento počet se bude v průběhu času stále zvětšovat bez ohledu na to, jestli je cluster v zastaveném stavu.

Než začnete

Tento článek předpokládá, že máte existující cluster AKS. Pokud potřebujete cluster AKS, můžete ho vytvořit pomocí Azure CLI, Azure PowerShellu nebo webu Azure Portal.

Informace o funkci zastavení/spuštění clusteru

Při použití funkce zastavení/spuštění clusteru platí následující podmínky:

  • Tato funkce je podporována pouze pro clustery, ve kterých běží škálovací sady virtuálních počítačů.
  • Clustery, které používají funkci automatického zřizování uzlů (NAP), nemůžete zastavit.
  • Stav zastaveného clusteru AKS se zachová po dobu až 12 měsíců. Pokud je cluster zastavený déle než 12 měsíců, nemůžete stav obnovit. Další informace najdete v zásadách podpory AKS.
  • V zastaveném clusteru AKS můžete provádět pouze operace spuštění nebo odstranění. Pokud chcete provádět jiné operace, jako je škálování nebo upgrade, musíte nejprve spustit cluster.
  • V případě clusteru AKS založeného na privátním propojení služba AKS při spuštění clusteru znovu vytvoří privátní koncový bod serveru API. AKS umístí privátní koncový bod do podsítě používané prvním fondem uzlů v konfiguraci clusteru. Pokud nahradíte původní systémový fond uzlů, může se jiný fond uzlů stát prvním fondem uzlů a AKS může znovu vytvořený privátní koncový bod umístit do jiné podsítě.
  • Vzhledem k tomu, že proces zastavení vyprázdní všechny uzly, odstraní se všechny samostatné pody (tj. pody, které nespravuje Nasazení, StatefulSet, DaemonSet, Úloha atd.).
  • Při spuštění zálohování clusteru se očekává následující chování:
    • IP adresa serveru rozhraní API se může změnit.
    • Pokud používáte automatické škálování clusteru, nemusí být váš aktuální počet uzlů mezi minimálními a maximálními hodnotami rozsahu, které jste nastavili. Cluster se spouští s počtem uzlů potřebným ke spouštění svých úloh a vaše nastavení automatického škálování na to nemá vliv. Když cluster provádí operace škálování, minimální a maximální hodnota mají vliv na aktuální počet uzlů a cluster se nakonec dostane do požadovaného rozsahu a zůstane v něm, dokud ho nezastavíte.

Zastavení clusteru AKS

Upozornění

Pokud má váš cluster ValidatingWebhookConfiguration nebo MutatingWebhookConfiguration, jejichž konfigurace se může vztahovat na prostředky v rámci clusteru, které AKS spravuje během zastavení/spuštění (například uzly, zapůjčení nebo role clusteru), může být operace zastavení odmítnuta pomocí ValidationError. To zahrnuje webhooky s pravidly zástupných znaků (*) pro apiGroups nebo resources. Pokud chcete tento problém vyřešit, zužte pravidla webhooku jen na prostředky, které potřebujete (vyhněte se zástupným znakům), zaměřte webhook na prostředky s oborem názvů pomocí scope: Namespaced a namespaceSelector, nastavte failurePolicy na Ignore, nebo odeberte webhook před zastavením.

  1. Použijte příkaz az aks stop, abyste zastavili spuštěný cluster AKS, včetně uzlů a řídicí roviny. Následující příklad zastaví cluster s názvem myAKSCluster:

    az aks stop --name myAKSCluster --resource-group myResourceGroup
    
  2. Ověřte, zda váš cluster zastavil používání příkazu az aks show a potvrďte, že se powerState zobrazuje jako Stopped.

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

    Výstup by měl vypadat podobně jako v následujícím zhuštěném příkladu výstupu:

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

    Pokud se provisioningState zobrazí Stopping, váš klastr se stále úplně nezastavil.

Důležité

Pokud používáte rozpočty pro přerušení podů, operace zastavení může trvat déle, protože dokončení procesu vyprázdnění trvá delší dobu.

Spusťte cluster AKS

Upozornění

Po použití funkce start/stop v AKS je důležité počkat 15 až 30 minut před restartováním clusteru AKS. Tato čekací doba je nezbytná, protože zabere několik minut, než se příslušné služby úplně zastaví. Pokus o restartování clusteru během tohoto procesu může narušit proces vypnutí a potenciálně způsobit problémy s clusterem nebo jeho úlohami.

  1. az aks start Pomocí příkazu spusťte zastavený cluster AKS. Cluster se restartuje s předchozím stavem řídicí roviny a počtem uzlů agentů. Následující příklad spustí cluster s názvem myAKSCluster:

    az aks start --name myAKSCluster --resource-group myResourceGroup
    
  2. Ověřte, že váš cluster se spustil pomocí příkazu az aks show a potvrďte, že powerState zobrazuje Running.

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

    Výstup by měl vypadat podobně jako v následujícím zhuštěném příkladu výstupu:

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

    Pokud se provisioningState zobrazí Starting, klastr ještě nebyl plně spuštěn.

Další kroky