Tworzenie puli węzłów w Azure Red Hat OpenShift z hostowanymi płaszczyznami sterowania (wersja zapoznawcza)

Po utworzeniu Azure Red Hat OpenShift z klastrem hostowanych płaszczyzn sterowania można utworzyć pule węzłów w celu dodania pojemności obliczeniowej. Pula węzłów to grupa węzłów obliczeniowych, która współużytkuje tę samą konfigurację. Możesz dodać wiele pul węzłów do jednego klastra, dzięki czemu można mieszać różne typy węzłów i rozmiary, aby dopasować je do obciążeń.

Większość właściwości puli węzłów jest niezmienna po utworzeniu. Przed utworzeniem puli węzłów uważnie zapoznaj się z dokumentacją referencyjną właściwości puli węzłów. Aby zmienić niezmienną właściwość, taką jak rozmiar maszyny wirtualnej, konfiguracja dysku, podsieć lub strefa dostępności, należy usunąć pulę węzłów i utworzyć nową.

Wymagania wstępne

  • 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.

LOCATION="<azure-region>"
SUBSCRIPTION_ID="$(az account show --query id --output tsv)"
CUSTOMER_RG_NAME="<resource-group-name>"
CLUSTER_NAME="<cluster-name>"
NP_NAME="<node-pool-name>"
NP_VERSION="<node-pool-version>"

Note

Aby uzyskać listę obsługiwanych regionów, zobacz Wybieranie regionu klastra.

(Opcjonalnie) Konfigurowanie szyfrowania dysków systemu operacyjnego

Azure Red Hat OpenShift z hostowanymi płaszczyznami sterowania obsługuje dwie opcjonalne metody szyfrowania dla dysków systemu operacyjnego puli węzłów. Obie metody są niezmienne po utworzeniu puli węzłów i można je połączyć w tej samej puli węzłów.

  • Szyfrowanie klucza zarządzanego przez klienta używa zestawu Azure Disk Encryption, który odwołuje się do klucza w Azure Key Vault w celu szyfrowania dysków systemu operacyjnego.
  • Szyfrowanie na hoście zapewnia kompleksowe szyfrowanie danych maszyny wirtualnej. Dane przechowywane na hoście maszyny wirtualnej są szyfrowane w spoczynku i przesyłane do usługi Storage w postaci zaszyfrowanej.

Jeśli nie potrzebujesz żadnej opcji szyfrowania, przejdź do sekcji Tworzenie puli węzłów.

Tworzenie zestawu szyfrowania dysku

Aby zaszyfrować dyski systemowe puli węzłów przy użyciu kluczy zarządzanych przez klienta, utwórz zestaw Azure Disk Encryption Set odwołujący się do klucza przechowywanego w usłudze Key Vault. Następnie podczas tworzenia puli węzłów wskaż zestaw szyfrowania dysków.
Zestaw szyfrowania dysków musi znajdować się w tej samej subskrypcji i lokalizacji co klaster.

Note

Zestawy szyfrowania dysków szyfrują dyski systemowe puli węzłów. Ta funkcja jest niezależna od szyfrowania etcd, które szyfruje przechowywane w spoczynku dane o stanie klastra. Aby uzyskać informacje o szyfrowaniu etcd, zobacz Wybieranie strategii szyfrowania klastra.

Ważna

Odpowiadasz za utrzymanie zestawu Key Vault i szyfrowania dysków w Azure.
Jeśli nie utrzymujesz kluczy, pule węzłów korzystające z tych kluczy przestają działać.
Maszyny wirtualne przestaną działać, a w związku z tym wszystkie obciążenia uruchomione w węzłach, których dotyczy problem, przestaną działać. Zespół Red Hat Site Reliability Engineering (SRE) nie może uzyskać dostępu do Twoich kluczy, tworzyć ich kopii zapasowych, replikować ich ani ich odzyskać.

  1. Ustaw zmienne środowiskowe dla zasobów szyfrowania dysku. Zastąp wartości zastępcze własnymi.

    KEYVAULT_NAME="<key-vault-name>"
    KEYVAULT_KEY_NAME="<key-name>"
    DISK_ENCRYPTION_SET_NAME="<disk-encryption-set-name>"
    
  2. Utwórz Key Vault z włączoną ochroną przeczyszczania w celu przechowywania klucza szyfrowania. Ochrona przed trwałym usunięciem uniemożliwia trwałe usunięcie usuniętego magazynu przed upływem okresu przechowywania, co chroni przed przypadkowym lub złośliwym skasowaniem.

    az keyvault create \
        --name $KEYVAULT_NAME \
        --resource-group $CUSTOMER_RG_NAME \
        --location $LOCATION \
        --enable-purge-protection true
    

    Note

    Ochrona przed przeczyszczaniem jest wymagana i nie można jej wyłączyć po jej włączeniu. Domyślnie usunięty sejf jest przechowywany przez 90 dni. Aby umożliwić szybsze odzyskiwanie nazw, dodaj --retention-days <number-of-days> (co najmniej 7 dni).

  3. Utwórz klucz szyfrowania w Key Vault.

    az keyvault key create \
        --vault-name $KEYVAULT_NAME \
        --name $KEYVAULT_KEY_NAME \
        --protection software
    
  4. Pobierz identyfikator zasobu usługi Key Vault i adres URL klucza.

    KEYVAULT_ID=$(az keyvault show --name $KEYVAULT_NAME --query "[id]" -o tsv)
    KEYVAULT_KEY_URL=$(az keyvault key show --vault-name $KEYVAULT_NAME --name $KEYVAULT_KEY_NAME --query "[key.kid]" -o tsv)
    
  5. Utwórz zestaw szyfrowania dysków.

    az disk-encryption-set create \
        --name $DISK_ENCRYPTION_SET_NAME \
        --location $LOCATION \
        --resource-group $CUSTOMER_RG_NAME \
        --source-vault $KEYVAULT_ID \
        --key-url $KEYVAULT_KEY_URL
    
  6. Pobierz identyfikator zasobu zestawu szyfrowania dysków i identyfikator podmiotu zabezpieczeń tożsamości.

    DES_ID=$(az disk-encryption-set show --name $DISK_ENCRYPTION_SET_NAME --resource-group $CUSTOMER_RG_NAME --query 'id' -o tsv)
    DES_IDENTITY=$(az disk-encryption-set show --name $DISK_ENCRYPTION_SET_NAME --resource-group $CUSTOMER_RG_NAME --query "[identity.principalId]" -o tsv)
    
  7. Przyznaj tożsamości zarządzanej zestawu szyfrowania dysków dostęp do usługi Key Vault. Następujące polecenie przypisuje rolę użytkownika szyfrowania usługi kryptograficznej Key Vault, która zapewnia wymagane wrapkeyuprawnienia , unwrapkeyi get klucza.

    az role assignment create \
        --assignee $DES_IDENTITY \
        --role "Key Vault Crypto Service Encryption User" \
        --scope $KEYVAULT_ID
    

Rejestrowanie szyfrowania na hoście

Szyfrowanie na hoście zapewnia kompleksowe szyfrowanie danych maszyny wirtualnej. Dane przechowywane na hoście maszyny wirtualnej są szyfrowane w spoczynku i przesyłane do usługi Storage w postaci zaszyfrowanej.

Przed utworzeniem puli węzłów z szyfrowaniem na poziomie hosta zarejestruj funkcję EncryptionAtHost w ramach subskrypcji, jeśli nie została jeszcze zarejestrowana:

az feature register --namespace Microsoft.Compute --name EncryptionAtHost

Sprawdź stan rejestracji:

az feature show --namespace Microsoft.Compute --name EncryptionAtHost

Tworzenie puli węzłów

Ważna

Sieciowa grupa zabezpieczeń (NSG) skojarzona z podsiecią, w której wdrożono węzły robocze puli węzłów, oraz grupa NSG skojarzona z podsiecią integracji z siecią wirtualną (VNet) muszą zezwalać na ruch opisany w artykule Wymagany ruch sieciowej grupy zabezpieczeń. Jeśli sieciowa grupa zabezpieczeń (NSG) ma regułę „Odmów”, która blokuje wymagany ruch, utworzona pula węzłów pozostaje w stanie Provisioning do momentu przekroczenia limitu czasu operacji.

  1. Zapisz następujący szablon Bicep jako nodepool.bicep.

    Poniższy przykład tworzy pulę węzłów z dwoma Standard_D8s_v6 węzłami:

    param clusterName string
    param nodePoolName string
    param nodePoolVersion string
    
    resource cluster 'Microsoft.RedHatOpenShift/hcpOpenShiftClusters@2026-09-01-preview' existing = {
      name: clusterName
    }
    
    resource nodepool 'Microsoft.RedHatOpenShift/hcpOpenShiftClusters/nodePools@2026-09-01-preview' = {
      parent: cluster
      name: nodePoolName
      location: resourceGroup().location
      properties: {
        version: {
          id: nodePoolVersion
          channelGroup: 'stable'
        }
        platform: {
           subnetId: hcp.properties.platform.subnetId
           vmSize: 'Standard_D8s_v6'
          osDisk: {
            sizeGiB: 64
            diskStorageAccountType: 'StandardSSD_LRS'
          }
        }
        replicas: 2
      }
    }
    

    Aby zaszyfrować dyski systemowe przy użyciu kluczy zarządzanych przez klienta, dodaj właściwość encryptionSetId do bloku osDisk i ustaw jej wartość na identyfikator zasobu zestawu szyfrowania dysków:

    osDisk: {
      ...
      encryptionSetId: '<disk-encryption-set-resource-id>'
    }
    

    Aby włączyć szyfrowanie na poziomie hosta, dodaj właściwość enableEncryptionAtHost do bloku platform:

    platform: {
      ...
      enableEncryptionAtHost: true
    }
    

    Note

    Można połączyć enableEncryptionAtHost z encryptionSetId w ramach tej samej puli węzłów, aby korzystać zarówno z szyfrowania na hoście, jak i z szyfrowania przy użyciu kluczy zarządzanych przez klienta.

  2. Wdróż plik Bicep.

    az deployment group create \
      --name 'aro-hcp-nodepool' \
      --subscription "${SUBSCRIPTION_ID}" \
      --resource-group "${CUSTOMER_RG_NAME}" \
      --template-file nodepool.bicep \
      --parameters \
        clusterName="${CLUSTER_NAME}" \
        nodePoolName="${NP_NAME}" \
        nodePoolVersion="${NP_VERSION}"
    
  3. Sprawdź, czy nowe węzły mają status Ready.

    oc get nodes
    

    Poniższe przykładowe dane wyjściowe przedstawiają węzły z dwóch pul węzłów. Węzły z nowej puli węzłów (np-2) są gotowe:

    NAME                          STATUS   ROLES    AGE     VERSION
    mycluster-np-1-722lp-6fhkr   Ready    worker   82m     v1.31.5
    mycluster-np-1-722lp-hvg7r   Ready    worker   82m     v1.31.5
    mycluster-np-2-c7d7l-fdpms   Ready    worker   3m19s   v1.31.5
    mycluster-np-2-c7d7l-rk7kt   Ready    worker   3m41s   v1.31.5
    
  1. Utwórz pulę węzłów.

    Poniższy przykład tworzy pulę węzłów z dwoma Standard_D8s_v6 węzłami:

    az aro hcp cluster nodepool create \
      --resource-group "${CUSTOMER_RG_NAME}" \
      --cluster-name "${CLUSTER_NAME}" \
      --name "${NP_NAME}" \
      --replicas 2 \
      --vm-size Standard_D8s_v6 \
      --version "${NP_VERSION}" \
      --channel-group stable
    

    Aby zaszyfrować dyski systemu operacyjnego przy użyciu kluczy zarządzanych przez klienta, dodaj --disk-encryption-set argument z identyfikatorem zasobu Zestawu szyfrowania dysków: --disk-encryption-set "${DES_ID}"

    Aby włączyć szyfrowanie na hoście, dodaj polecenie --encryption-at-host true. Obie opcje szyfrowania można połączyć w tej samej puli węzłów, dodając oba argumenty.

  2. Sprawdź, czy nowe węzły mają status Ready.

    oc get nodes
    

    Poniższe przykładowe dane wyjściowe przedstawiają węzły z dwóch pul węzłów. Węzły z nowej puli węzłów są gotowe:

    NAME                          STATUS   ROLES    AGE     VERSION
    mycluster-np-1-722lp-6fhkr   Ready    worker   82m     v1.31.5
    mycluster-np-1-722lp-hvg7r   Ready    worker   82m     v1.31.5
    mycluster-np-2-c7d7l-fdpms   Ready    worker   3m19s   v1.31.5
    mycluster-np-2-c7d7l-rk7kt   Ready    worker   3m41s   v1.31.5
    

Informacje referencyjne o właściwościach puli węzłów

W poniższej tabeli opisano właściwości puli węzłów, które można skonfigurować. Właściwości oznaczone jako niezmienne można ustawić tylko podczas tworzenia puli węzłów.

Majątek Description Wymagane Niezmienialny
name Nazwa puli węzłów. Musi mieć długość od 1 do 15 znaków, zaczynać się literą, kończyć literą lub cyfrą i zawierać tylko litery, cyfry i łączniki. Yes Yes
version.id Wersja OpenShift dla puli węzłów, taka jak 4.22.1. Musi być mniejsza lub równa niż wersja płaszczyzny sterowania. Yes No
version.channelGroup Kanał aktualizacji OpenShift. Jedyną obsługiwaną wartością jest stable. No No
platform.vmSize Rozmiar maszyny wirtualnej Azure dla węzłów. Aby uzyskać informacje o obsługiwanych rozmiarach, zobacz Obsługiwane rozmiary maszyn wirtualnych. Dostępność zależy również od lokalizacji Azure klastra. Yes Yes
platform.subnetId Identyfikator zasobu Azure podsieci. Musi należeć do tej samej sieci wirtualnej co klaster. Sieciowa grupa zabezpieczeń dołączona do tej podsieci musi zezwalać na wymagany ruch puli węzłów. Wartość domyślna dla podsieci klastra, jeśli nie zostanie określona. No Yes
platform.availabilityZone Strefa dostępności dla puli węzłów. Jeśli nie zostanie określona, pula węzłów zostanie utworzona w zestawie dostępności. W każdej strefie dostępności można wdrożyć tylko jedną pulę węzłów. Aby uzyskać więcej informacji, zobacz Co to są strefy dostępności? No Yes
platform.osDisk.sizeGiB Rozmiar dysku systemu operacyjnego w GiB. Wartość minimalna to 64. Wartość domyślna to 64 GiB. No Yes
platform.osDisk.diskStorageAccountType Typ dysku zarządzanego. Prawidłowe wartości: Premium_LRS, , StandardSSD_LRSStandard_LRS. Wartość domyślna to Premium_LRS. Aby uzyskać więcej informacji, zobacz Typy dysków zarządzanych platformy Azure. No Yes
platform.osDisk.diskType Typ dysku systemu operacyjnego. Managedprzechowuje dysk jako dysk zarządzany Azure. Ephemeral przechowuje dysk w lokalnym magazynie maszyn wirtualnych, aby uzyskać mniejsze opóźnienia i szybsze operacje węzłów. Dyski efemeryczne wymagają rozmiaru maszyny wirtualnej o pojemności magazynu lokalnego równego lub większego niż rozmiar obrazu dysku systemu operacyjnego. Wartość domyślna to Managed. Aby uzyskać więcej informacji, zobacz: Dyski systemu operacyjnego efemeryczne dla maszyn wirtualnych Azure. No Yes
platform.osDisk.encryptionSetId Identyfikator zasobu platformy Azure obiektu DiskEncryptionSet służącego do szyfrowania dysków systemu operacyjnego. Musi znajdować się w tej samej subskrypcji i lokalizacji co klaster. Zobacz Tworzenie zestawu szyfrowania dysku. No Yes
platform.enableEncryptionAtHost Włącza szyfrowanie na hoście maszyny wirtualnej dla wszystkich węzłów w puli węzłów. Wartość domyślna to false. Zobacz Rejestrowanie szyfrowania na hoście. No Yes
replicas Liczba węzłów do udostępnienia. Wymagane, jeśli autoScaling nie zostało skonfigurowane. Minimalna wartość to 0. Warunkowy No
autoScaling Włącza skalowanie automatyczne dla puli węzłów. Wymagane, jeśli replicas nie zostało skonfigurowane. Ustaw autoScaling.min i autoScaling.max , aby zdefiniować zakres liczby węzłów. Warunkowy No
labels Etykiety Kubernetes przypisywane nowo utworzonym węzłom w postaci par klucz-wartość. No No
taints Tainty Kubernetes zastosowane do nowo utworzonych węzłów. Każde skażenie wymaga elementów key i effect. Prawidłowe efekty: NoSchedule, , NoExecutePreferNoSchedule. No No
nodeDrainTimeoutMinutes Okres karencji w minutach dla obciążeń chronionych przez mechanizm Pod Disruption Budget podczas wymiany węzła. Zakres: 0–10080 (1 tydzień). Wartość 0 oznacza brak limitu czasu. Zastępuje wartość domyślną na poziomie klastra. No No

Note

Azure Red Hat OpenShift z hostowanymi płaszczyznami sterowania obsługuje maksymalnie 500 węzłów roboczych na klaster we wszystkich pulach węzłów. Pule węzłów wdrożone w strefie dostępności obsługują do 500 węzłów na pulę węzłów. Pule węzłów wdrożone w ramach zestawu dostępności obsługują do 200 węzłów na każdą pulę węzłów.

Następne kroki