Skalowanie i konfigurowanie pul węzłów w Azure Red Hat OpenShift za pomocą hostowanych płaszczyzn sterowania (wersja zapoznawcza)

Po utworzeniu pul węzłów w klastrze Azure Red Hat OpenShift z hostowanymi płaszczyznami sterowania możesz je skalować, aby dostosować wydajność, kontrolować rozmieszczanie obciążeń za pomocą etykiet i taintów, konfigurować zachowanie odwadniania węzłów oraz usuwać pule węzłów, których już nie potrzebujesz.

Wymagania wstępne

  • Istniejący klaster Azure Red Hat OpenShift z hostowanymi płaszczyznami sterowania i co najmniej jedną pulą węzłów.
  • Azure CLI w wersji 2.67.0 lub nowszej. Użyj polecenia az --version , aby znaleźć zainstalowaną wersję. Jeśli musisz zainstalować lub uaktualnić, zobacz Install Azure CLI.
  • Zainstalowano rozszerzenie CLI ARO HCP. Jeśli musisz go zainstalować, uruchom polecenie az extension add --name aro.

Ustawianie zmiennych środowiskowych

Jeśli nie ustawiono jeszcze następujących zmiennych środowiskowych, przed kontynuowaniem ustaw je w powłoce. Zastąp wartości zastępcze własnymi.

CUSTOMER_RG_NAME="<resource-group-name>"
CLUSTER_NAME="<cluster-name>"
NP_NAME="<node-pool-name>"

Skalowanie puli węzłów

Skaluj istniejącą pulę węzłów, aby dostosować pojemność pod kątem zmieniających się wymagań dotyczących obciążeń. Ustaw określoną liczbę replik na potrzeby ręcznego skalowania lub skonfiguruj skalowanie automatyczne, aby automatycznie dostosować liczbę węzłów w zdefiniowanym zakresie.

Note

Należy skonfigurować dla puli węzłów element replicas lub autoScaling, ale nie obu jednocześnie.

  1. Zaktualizuj liczbę replik puli węzłów lub konfigurację skalowania automatycznego.

    Poniższy przykład skaluje pulę węzłów o stałej liczbie replik do czterech replik. Jeśli pula węzłów obecnie korzysta z automatycznego skalowania, dodaj --remove properties.autoScaling, aby je wyłączyć:

    az aro hcp cluster nodepool update \
      --resource-group "${CUSTOMER_RG_NAME}" \
      --cluster-name "${CLUSTER_NAME}" \
      --name "${NP_NAME}" \
      --replicas 4 \
      --remove properties.autoScaling
    

    Aby przełączyć się z stałej liczby replik do skalowania automatycznego, dodaj --remove properties.replicas i podaj zakres skalowania automatycznego:

    az aro hcp cluster nodepool update \
      --resource-group "${CUSTOMER_RG_NAME}" \
      --cluster-name "${CLUSTER_NAME}" \
      --name "${NP_NAME}" \
      --min-replicas 2 \
      --max-replicas 8 \
      --remove properties.replicas
    
  2. Sprawdź zmiany w puli węzłów.

    oc get nodes
    

Kontrola rozmieszczenia obciążeń roboczych

Zastosuj etykiety i tainty do puli węzłów, aby określić, które obciążenia mogą być uruchamiane na węzłach tej puli. Użyj etykiet do węzłów docelowych przy użyciu selektorów węzłów i reguł koligacji. Użyj taintów, aby uniemożliwić planowanie zasobników, które nie mają odpowiadającej tolerancji, dzięki czemu możesz przeznaczyć pule węzłów do określonych obciążeń.

Ważna

Zmiany etykiet i skażeń dotyczą tylko nowo utworzonych węzłów w puli węzłów. Aktualizowanie etykiet lub taintów nie powoduje stopniowej podmiany istniejących węzłów. Aby zastosować etykiety lub znaki do wszystkich węzłów, usuń pulę węzłów i utwórz nową z odpowiednią konfiguracją.

  1. Dodawanie lub aktualizowanie etykiet i defektów w puli węzłów.

    Poniższy przykład dodaje etykietę i skażenie do puli węzłów:

    az aro hcp cluster nodepool update \
      --resource-group "${CUSTOMER_RG_NAME}" \
      --cluster-name "${CLUSTER_NAME}" \
      --name "${NP_NAME}" \
      --labels "[{key:workload-type,value:gpu}]" \
      --taints "[{key:dedicated,value:gpu-workloads,effect:NoSchedule}]"
    

    Właściwość effect określa, jak taint wpływa na planowanie podów:

    Efekt Description
    NoSchedule Harmonogram nie planuje zasobników bez pasującej tolerancji w węźle. Istniejące zasobniki nie są usuwane.
    PreferNoSchedule Harmonogram unika umieszczania zasobników bez pasującej tolerancji w węźle, ale nie zapobiega.
    NoExecute Planista nie przypisuje podów bez tolerancji pasującej do węzła, a istniejące pody bez takiej tolerancji są usuwane.
  2. Sprawdź, czy etykiety zostały przypisane do puli węzłów.

    az aro hcp cluster nodepool show \
      --resource-group "${CUSTOMER_RG_NAME}" \
      --cluster-name "${CLUSTER_NAME}" \
      --name "${NP_NAME}" \
      --query "properties.labels"
    

    Poniższy przykład danych wyjściowych pokazuje etykietę przypisaną do puli węzłów:

    [
      {
        "key": "workload-type",
        "value": "gpu"
      }
    ]
    

Konfigurowanie zachowania opróżniania węzła

Ustaw okres prolongaty drenowania węzła, aby określić, jak długo proces aktualizacji przestrzega ograniczeń dotyczących obciążeń chronionych przez PDB podczas zastępowania węzłów w puli. Po upływie okresu karencji proces wymusza usunięcie wszystkich pozostałych obciążeń roboczych.

Właściwość limitu czasu odwadniania węzła w puli węzłów zastępuje dla tej puli wartość domyślną na poziomie klastra. Zakres wartości to od 0 do 10 080 minut (1 tydzień). Wartość 0 oznacza, że węzeł opróżnia się bez żadnego limitu czasu do ukończenia.

W poniższym przykładzie ustawiono 30-minutowy limit czasu opróżniania:

az aro hcp cluster nodepool update \
  --resource-group "${CUSTOMER_RG_NAME}" \
  --cluster-name "${CLUSTER_NAME}" \
  --name "${NP_NAME}" \
  --node-drain-timeout 30

Usuń pulę węzłów

  1. Usuń pulę węzłów, gdy nie jest już potrzebna lub gdy trzeba ją ponownie utworzyć przy użyciu różnych niezmiennych właściwości.

    az aro hcp cluster nodepool delete \
      --resource-group "${CUSTOMER_RG_NAME}" \
      --cluster-name "${CLUSTER_NAME}" \
      --name "${NP_NAME}" \
      -y
    
  2. Sprawdź, czy węzły zostały usunięte.

    oc get nodes