Creare un pool di nodi in Azure Red Hat OpenShift con piani di controllo ospitati (anteprima)

Dopo aver creato un Azure Red Hat OpenShift con il cluster dei piani di controllo ospitati, è possibile creare pool di nodi per aggiungere capacità di calcolo. Un pool di nodi è un gruppo di nodi di calcolo che condividono la stessa configurazione. È possibile aggiungere più pool di nodi a un singolo cluster, in modo da poter combinare tipi di nodo e dimensioni diversi in base ai carichi di lavoro.

La maggior parte delle proprietà del pool di nodi non è modificabile dopo la creazione. Esaminare attentamente i riferimenti alle proprietà del pool di nodi prima di creare un pool di nodi. Per modificare una proprietà non modificabile come dimensioni della macchina virtuale, configurazione del disco, subnet o zona di disponibilità, è necessario eliminare il pool di nodi e crearne uno nuovo.

Prerequisiti

  • L'estensione CLI di ARO HCP è installata. Se è necessario installarlo, eseguire az extension add --name aro.

Impostare le variabili di ambiente

Se non sono già state impostate le variabili di ambiente seguenti, impostarle nella shell prima di procedere. Sostituire i valori segnaposto con i propri.

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

Per un elenco delle aree supportate, vedere Scegliere l'area del cluster.

(Facoltativo) Configurare la crittografia del disco del sistema operativo

Azure Red Hat OpenShift con piani di controllo ospitati supporta due metodi di crittografia facoltativi per i dischi del sistema operativo del pool di nodi. Entrambi i metodi non sono modificabili dopo la creazione del pool di nodi ed è possibile combinarli nello stesso pool di nodi.

  • La crittografia della chiave gestita dal cliente usa un set di Crittografia dischi di Azure che fa riferimento a una chiave nel Azure Key Vault per crittografare i dischi del sistema operativo.
  • La crittografia nell'host fornisce la crittografia end-to-end per i dati delle macchine virtuali. I dati archiviati sull'host della VM sono crittografati a riposo e vengono trasferiti in forma crittografata al servizio di Storage.

Se non è necessaria alcuna opzione di crittografia, passare a Creare il pool di nodi.

Crea un set di crittografia dischi

Per crittografare i dischi del sistema operativo del pool di nodi usando chiavi gestite dal cliente, creare un set di Crittografia dischi di Azure che fa riferimento a una chiave nel Key Vault. Quindi, fare riferimento al set di crittografia del disco durante la creazione del pool di nodi.
Il set di crittografia dei dischi deve essere nella stessa sottoscrizione e nella stessa area geografica del cluster.

Note

I set di crittografia dei dischi crittografano i dischi del sistema operativo del pool di nodi. Questa funzionalità è indipendente dalla crittografia etcd, che crittografa i dati di stato del cluster inattivi. Per informazioni sulla crittografia etcd, vedere Scegliere la strategia di crittografia del cluster.

Importante

Sei responsabile del mantenimento di Key Vault e del Disk Encryption Set in Azure.
Se non si gestiscono le chiavi, i pool di nodi che le usano smettono di funzionare.
Le macchine virtuali interrompono il funzionamento e, di conseguenza, tutti i carichi di lavoro in esecuzione nei nodi interessati smette di funzionare. Red Hat Site Reliability Engineering (SRE) non può accedere, eseguire il backup, replicare o recuperare le chiavi.

  1. Impostare le variabili di ambiente per le risorse di crittografia del disco. Sostituire i valori segnaposto con i propri.

    KEYVAULT_NAME="<key-vault-name>"
    KEYVAULT_KEY_NAME="<key-name>"
    DISK_ENCRYPTION_SET_NAME="<disk-encryption-set-name>"
    
  2. Creare un Key Vault con la protezione di ripulitura abilitata per archiviare la chiave di crittografia. La protezione dall'eliminazione definitiva impedisce la rimozione permanente di un insieme di credenziali eliminato prima della scadenza del periodo di conservazione, proteggendo da eliminazioni accidentali o intenzionali.

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

    Note

    La protezione di ripulitura è obbligatoria e non può essere disabilitata dopo l'abilitazione. Per impostazione predefinita, una cassaforte eliminata viene conservata per 90 giorni. Per consentire una riassegnazione del nome più rapida, aggiungere --retention-days <number-of-days> (minimo di 7 giorni).

  3. Creare una chiave di crittografia nel Key Vault.

    az keyvault key create \
        --vault-name $KEYVAULT_NAME \
        --name $KEYVAULT_KEY_NAME \
        --protection software
    
  4. Recuperare l'ID della risorsa e l'URL della chiave di Key Vault.

    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. Crea il set di crittografia dei dischi.

    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. Ottenere l'ID risorsa set di crittografia dischi e l'ID dell'entità di identità.

    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. Concedi all'identità gestita del set di crittografia del disco l'accesso al Key Vault. Il comando seguente assegna il ruolo Key Vault Crypto Service Encryption User, che fornisce le autorizzazioni della chiave necessarie wrapkey, unwrapkey e get.

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

Registrare la crittografia nell'host

La crittografia nell'host fornisce la crittografia end-to-end per i dati delle macchine virtuali. I dati archiviati sull'host della VM sono crittografati a riposo e vengono trasferiti in forma crittografata al servizio di Storage.

Prima di creare un pool di nodi con crittografia a livello host, registra la funzionalità EncryptionAtHost nella tua sottoscrizione, se non l'hai già fatto:

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

Controllare lo stato della registrazione:

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

Creare il pool di nodi

Importante

Il gruppo di sicurezza di rete (NSG) associato alla subnet in cui vengono distribuiti i ruoli di lavoro del pool di nodi e il gruppo di sicurezza di rete associato alla subnet di integrazione della rete virtuale deve consentire il traffico descritto in Traffico del gruppo di sicurezza di rete richiesto. Se il gruppo di sicurezza di rete ha una regola Deny che blocca il traffico richiesto, il pool di nodi creato rimane nello Provisioning stato fino al timeout dell'operazione.

  1. Salva il modello Bicep seguente come nodepool.bicep.

    L'esempio seguente crea un pool di nodi con due Standard_D8s_v6 nodi:

    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
      }
    }
    

    Per crittografare i dischi del sistema operativo con chiavi gestite dal cliente, aggiungere la proprietà encryptionSetId al blocco osDisk e impostarne il valore sull'ID risorsa del set di crittografia del disco:

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

    Per abilitare la crittografia nell'host, aggiungere la enableEncryptionAtHost proprietà al platform blocco :

    platform: {
      ...
      enableEncryptionAtHost: true
    }
    

    Note

    È possibile combinare enableEncryptionAtHost con encryptionSetId nello stesso pool di nodi per usare sia la crittografia nell'host che nella crittografia della chiave gestita dal cliente.

  2. Distribuire il file 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. Verificare che i nuovi nodi abbiano uno Ready stato.

    oc get nodes
    

    L'output di esempio seguente mostra i nodi di due pool di nodi. I nodi del nuovo pool di nodi (np-2) sono pronti:

    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. Creare il pool di nodi.

    L'esempio seguente crea un pool di nodi con due Standard_D8s_v6 nodi:

    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
    

    Per crittografare i dischi del sistema operativo con chiavi gestite dal cliente, aggiungere l'argomento --disk-encryption-set con l'ID risorsa del set di crittografia del disco: --disk-encryption-set "${DES_ID}"

    Per abilitare la crittografia nell'host, aggiungere --encryption-at-host true. È possibile combinare entrambe le opzioni di crittografia nello stesso pool di nodi aggiungendo entrambi gli argomenti.

  2. Verificare che i nuovi nodi abbiano uno Ready stato.

    oc get nodes
    

    L'output di esempio seguente mostra i nodi di due pool di nodi. I nodi del nuovo pool di nodi sono pronti:

    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
    

Informazioni di riferimento sulle proprietà del pool di nodi

Nella tabella seguente vengono descritte le proprietà del pool di nodi che è possibile configurare. Le proprietà contrassegnate come non modificabili possono essere impostate solo quando si crea il pool di nodi.

Proprietà Description Obbligatorio Immutabile
name Nome del pool di nodi. Deve avere una lunghezza di 1-15 caratteri, iniziare con una lettera, terminare con una lettera o un numero e contenere solo lettere, numeri e trattini. Sì Sì
version.id Versione di OpenShift per il pool di nodi, ad esempio 4.22.1. Deve essere inferiore o uguale alla versione del piano di controllo. Sì No
version.channelGroup Canale di aggiornamento di OpenShift. L'unico valore supportato è stable. No No
platform.vmSize Dimensioni della macchina virtuale Azure per i nodi. Per le dimensioni supportate, vedere Dimensioni delle macchine virtuali supportate. La disponibilità dipende anche dalla posizione Azure del cluster. Sì Sì
platform.subnetId L'ID della risorsa Azure di una subnet. Deve appartenere alla stessa rete virtuale del cluster. L'NSG associato a questa subnet deve consentire il traffico necessario per il pool di nodi. L'impostazione predefinita è la subnet del cluster, se non specificata. No Sì
platform.availabilityZone La zona di disponibilità per il pool di nodi. Se non specificato, il pool di nodi viene creato in un set di disponibilità. È possibile distribuire un solo pool di nodi per zona di disponibilità. Per altre informazioni, vedere Che cosa sono le zone di disponibilità? No Sì
platform.osDisk.sizeGiB Le dimensioni del disco del sistema operativo in GiB. Il valore minimo è 64. Il valore predefinito è 64 GiB. No Sì
platform.osDisk.diskStorageAccountType Tipo di disco gestito. Valori validi: Premium_LRS, StandardSSD_LRS, Standard_LRS. Il valore predefinito è Premium_LRS. Per altre informazioni, vedere Tipi di dischi gestiti di Azure. No Sì
platform.osDisk.diskType Tipo di disco del sistema operativo. Managedarchivia il disco come disco gestito Azure. Ephemeral archivia il disco nell'archiviazione di macchine virtuali locali per ridurre la latenza e velocizzare le operazioni sui nodi. I dischi temporanei richiedono dimensioni di macchina virtuale con capacità di archiviazione locale uguale o maggiore delle dimensioni dell'immagine del disco del sistema operativo. Il valore predefinito è Managed. Per altre informazioni, vedere Dischi temporanei del sistema operativo per le macchine virtuali di Azure. No Sì
platform.osDisk.encryptionSetId ID risorsa di Azure di un DiskEncryptionSet usato per crittografare i dischi del sistema operativo. Deve trovarsi nella stessa sottoscrizione e nella stessa posizione del cluster. Vedere Creare un set di crittografia del disco. No Sì
platform.enableEncryptionAtHost Abilita la crittografia nell'host della macchina virtuale per tutti i nodi nel pool di nodi. Il valore predefinito è false. Vedere Registrare la crittografia nell'host. No Sì
replicas Numero di nodi di cui effettuare il provisioning. Obbligatorio se autoScaling non è configurato. Il valore minimo è 0. Conditional No
autoScaling Abilita la scalabilità automatica per il pool di nodi. Obbligatorio se replicas non è configurato. Impostare autoScaling.min e autoScaling.max per definire l'intervallo di conteggio dei nodi. Conditional No
labels Etichette Kubernetes applicate come coppie chiave-valore ai nodi appena creati. No No
taints Taint Kubernetes applicati ai nodi appena creati. Ogni taint richiede un key e effect. Effetti validi: NoSchedule, PreferNoSchedule, NoExecute. No No
nodeDrainTimeoutMinutes Periodo di tolleranza, in minuti, per i carichi di lavoro protetti da Pod Disruption Budget nel corso della sostituzione del nodo. Intervallo: 0-10080 (1 settimana). Il valore 0 non indica alcun limite di tempo. Esegue l'override del valore predefinito a livello di cluster. No No

Note

Azure Red Hat OpenShift con piani di controllo ospitati supporta un massimo di 500 nodi di lavoro per ogni cluster in tutti i pool di nodi. I pool di nodi distribuiti in una zona di disponibilità supportano fino a 500 nodi per pool di nodi. I pool di nodi distribuiti in un set di disponibilità supportano fino a 200 nodi per pool di nodi.

Passaggi successivi