Udostępnij za pośrednictwem


Zatrzymywanie i uruchamianie klastra usługi Azure Kubernetes Service (AKS)

Może nie być konieczne ciągłe uruchamianie obciążeń usługi Azure Kubernetes Service (AKS). Na przykład może istnieć klaster deweloperów, którego używasz tylko w godzinach pracy. Oznacza to, że czasami klaster może być w stanie bezczynności, nie uruchamiając nic więcej niż składniki systemowe. Możesz zmniejszyć zużycie klastra przez skalowanie wszystkich User pul węzłów do 0, ale System pula jest nadal wymagana do uruchamiania składników systemowych podczas działania klastra.

Aby lepiej zoptymalizować koszty w tych okresach, możesz wyłączyć lub zatrzymać klaster. To działanie zatrzymuje płaszczyznę sterowania i węzły agenta, co pozwala oszczędzić na wszystkich kosztach obliczeniowych, zachowując wszystkie obiekty poza autonomicznymi zasobnikami. Stan klastra jest przechowywany na wypadek ponownego uruchomienia, co umożliwia wznowienie od miejsca, w którym zakończono.

Uwaga

Zatrzymanie klastra deaktywuje płaszczyznę sterowania i zwalnia zasoby. W regionach, w których występują ograniczenia pojemności, klienci mogą nie być w stanie uruchomić zatrzymanego klastra. Z tego powodu nie zalecamy zatrzymywania obciążeń o znaczeniu krytycznym.

Uwaga

Operacje uruchamiania usługi AKS spowodują przywrócenie wszystkich obiektów z ETCD z wyjątkiem autonomicznych podów o tych samych nazwach i wieków. oznacza to, że wiek zasobnika będzie nadal obliczany od momentu jego pierwotnego utworzenia. Ta liczba będzie się zwiększać wraz z upływem czasu, niezależnie od tego, czy klaster jest w stanie zatrzymanym.

Zanim rozpoczniesz

W tym artykule założono, że masz istniejący klaster AKS. Jeśli potrzebujesz klastra usługi AKS, możesz go utworzyć przy użyciu interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell lub witryny Azure Portal.

Informacje o funkcji zatrzymywania/uruchamiania klastra

W przypadku korzystania z funkcji zatrzymywania/uruchamiania klastra obowiązują następujące warunki:

  • Ta funkcja jest obsługiwana tylko w przypadku klastrów opartych na zestawie skalowania maszyn wirtualnych.
  • Nie można zatrzymać klastrów korzystających z funkcji autoprovisioningu węzłów (NAP).
  • Stan zatrzymanego klastra usługi AKS jest zachowywany przez maksymalnie 12 miesięcy. Jeśli klaster jest zatrzymany przez ponad 12 miesięcy, nie można odzyskać stanu. Aby uzyskać więcej informacji, zapoznaj się z politykami wsparcia usługi AKS.
  • Można wykonywać tylko operacje uruchamiania lub usuwania na zatrzymanym klastrze AKS. Aby wykonać inne operacje, takie jak skalowanie lub uaktualnianie, należy najpierw uruchomić klaster.
  • Jeśli skonfigurowano punkty końcowe PrivateEndpoint powiązane z klastrami prywatnymi, należy je usunąć i ponownie utworzyć podczas uruchamiania zatrzymanego klastra AKS.
  • Ponieważ proces zatrzymania opróżnia wszystkie węzły, wszystkie autonomiczne zasobniki (tj. zasobniki, które nie są zarządzane przez element Deployment, StatefulSet, DaemonSet, Job itp.), zostaną usunięte.
  • Po ponownym uruchomieniu klastra oczekiwane jest następujące zachowanie:
    • Adres IP serwera interfejsu API może ulec zmianie.
    • Jeśli używasz narzędzia do automatycznego skalowania klastra, podczas uruchamiania klastra bieżąca liczba węzłów może nie należeć do ustawionych wartości minimalnych i maksymalnych zakresów. Klaster rozpoczyna z liczbą węzłów potrzebną do uruchomienia obciążeń, na którą nie wpływają ustawienia autoskalowania. Gdy klaster wykonuje operacje skalowania, wartość minimalna i maksymalna będzie mieć wpływ na bieżącą liczbę węzłów, a klaster ostatecznie znajdzie się w żądanym zakresie i pozostanie w nim do momentu zatrzymania klastra.

Zatrzymanie klastra AKS

  1. Użyj polecenia az aks stop aby zatrzymać działający klaster AKS, w tym węzły i płaszczyznę sterowania. Poniższy przykład zatrzymuje klaster o nazwie myAKSCluster:

    az aks stop --name myAKSCluster --resource-group myResourceGroup
    
  2. Zweryfikuj, czy klaster został zatrzymany za pomocą polecenia az aks show i potwierdź, że powerState jest widoczny jako Stopped.

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

    Dane wyjściowe powinny wyglądać podobnie do następujących skróconych przykładowych danych wyjściowych:

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

    Jeśli provisioningState pokazuje Stopping, klaster nie został jeszcze w pełni zatrzymany.

Ważne

Jeśli używasz budżetów zakłóceń zasobników, operacja zatrzymania może potrwać dłużej, ponieważ proces opróżniania zajmie więcej czasu.

Rozpocznij klaster AKS

Uwaga

Po użyciu funkcji uruchamiania/zatrzymywania w usłudze AKS należy odczekać 15–30 minut przed ponownym uruchomieniem klastra usługi AKS. Ten okres oczekiwania jest niezbędny, ponieważ pełne zatrzymanie odpowiednich usług trwa kilka minut. Próba ponownego uruchomienia klastra podczas tego procesu może zakłócić proces zamykania i potencjalnie powodować problemy z klastrem lub jego obciążeniami.

  1. Użyj polecenia az aks start aby uruchomić zatrzymany klaster usługi AKS. Klaster jest uruchamiany ponownie przy użyciu poprzedniego stanu płaszczyzny sterowania i liczby węzłów agenta. Poniższy przykład uruchamia klaster o nazwie myAKSCluster:

    az aks start --name myAKSCluster --resource-group myResourceGroup
    
  2. Sprawdź, czy Twój klaster został uruchomiony za pomocą polecenia az aks show i potwierdź, że powerState pokazuje Running.

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

    Dane wyjściowe powinny wyglądać podobnie do następujących skróconych przykładowych danych wyjściowych:

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

    Jeśli provisioningState pokazuje Starting, klaster nie został jeszcze w pełni uruchomiony.

Następne kroki