Creare un cluster privato di Azure Red Hat OpenShift 4

Questo articolo descrive come preparare l'ambiente per creare cluster privati di Azure Red Hat OpenShift che eseguono OpenShift 4. Nello specifico:

  • Configurare i prerequisiti e creare la rete virtuale e la subnet obbligatorie
  • Distribuire un cluster con un endpoint server API privato e un controller di ingresso privato

Se si sceglie di installare e usare l'interfaccia della riga di comando in locale, per questa esercitazione è necessario eseguire l'interfaccia della riga di comando di Azure versione 2.30.0 o successiva. Eseguire az --version per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.

Operazioni preliminari

Registrare i provider di risorse

  1. Se sono presenti più sottoscrizioni di Azure, specificare l'ID sottoscrizione pertinente:

    az account set --subscription <SUBSCRIPTION ID>
    
  2. Registrare il provider di risorse Microsoft.RedHatOpenShift:

    az provider register -n Microsoft.RedHatOpenShift --wait
    
  3. Registrare il Microsoft.Compute provider di risorse (se non è già stato fatto):

    az provider register -n Microsoft.Compute --wait
    
  4. Registrare il Microsoft.Network provider di risorse (se non è già stato fatto):

    az provider register -n Microsoft.Network --wait
    
  5. Registrare il Microsoft.Storage provider di risorse (se non è già stato fatto):

    az provider register -n Microsoft.Storage --wait
    

Ottenere un segreto pull di Red Hat (facoltativo)

Un segreto pull di Red Hat consente al cluster di accedere ai registri contenitori di Red Hat unitamente a contenuto aggiuntivo. Questo passaggio è facoltativo ma consigliato.

  1. Passare al portale di gestione cluster di Red Hat OpenShift ed eseguire l'accesso.

    Dovrai accedere al tuo account Red Hat o creare un nuovo account Red Hat con il tuo indirizzo di posta elettronica aziendale e accettare i termini e le condizioni.

  2. Fare clic su Download pull secret (Scarica segreto pull).

Conservare il file pull-secret.txt salvato in una posizione sicura perché verrà usato ogni volta che si crea un cluster.

Quando si esegue il comando az aro create, è possibile fare riferimento al segreto di pull usando il parametro --pull-secret @pull-secret.txt. Eseguire az aro create dalla directory in cui è stato archiviato il file pull-secret.txt. In caso contrario, sostituire @pull-secret.txt con @<path-to-my-pull-secret-file.

Se si copia il segreto pull o lo si fa riferimento in altri script, il segreto pull deve essere formattato come stringa JSON valida.

Creare una rete virtuale contenente due subnet vuote

Si creerà quindi una rete virtuale contenente due subnet vuote.

  1. Impostare le variabili seguenti.

    LOCATION=eastus                 # the location of your cluster
    RESOURCEGROUP="v4-$LOCATION"    # the name of the resource group where you want to create your cluster
    CLUSTER=aro-cluster             # the name of your cluster
    
  2. Creare un gruppo di risorse

    Un gruppo di risorse di Azure è un gruppo logico in cui le risorse di Azure vengono distribuite e gestite. Quando si crea un gruppo di risorse, viene chiesto di specificare una posizione. Questa posizione è la posizione in cui vengono archiviati i metadati del gruppo di risorse, ma è anche la posizione in cui le risorse vengono eseguite in Azure se non si specifica un'altra area durante la creazione delle risorse. Creare un gruppo di risorse con il comando [az group create][az-group-create].

    az group create --name $RESOURCEGROUP --location $LOCATION
    

    L'output di esempio seguente mostra il gruppo di risorse creato correttamente:

    {
    "id": "/subscriptions/<guid>/resourceGroups/aro-rg",
    "location": "eastus",
    "managedBy": null,
    "name": "aro-rg",
    "properties": {
        "provisioningState": "Succeeded"
    },
    "tags": null
    }
    
  3. Creare una rete virtuale.

    I cluster di Azure Red Hat OpenShift che eseguono OpenShift 4 richiedono una rete virtuale con due subnet vuote, per i nodi master e di lavoro.

    Creare una nuova rete virtuale nello stesso gruppo di risorse creato in precedenza.

    az network vnet create \
    --resource-group $RESOURCEGROUP \
    --name aro-vnet \
    --address-prefixes 10.0.0.0/22
    

    L'output di esempio seguente mostra la rete virtuale creata correttamente:

    {
    "newVNet": {
        "addressSpace": {
        "addressPrefixes": [
            "10.0.0.0/22"
        ]
        },
        "id": "/subscriptions/<guid>/resourceGroups/aro-rg/providers/Microsoft.Network/virtualNetworks/aro-vnet",
        "location": "eastus",
        "name": "aro-vnet",
        "provisioningState": "Succeeded",
        "resourceGroup": "aro-rg",
        "type": "Microsoft.Network/virtualNetworks"
    }
    }
    
  4. Aggiungere una subnet vuota per i nodi master.

    az network vnet subnet create \
    --resource-group $RESOURCEGROUP \
    --vnet-name aro-vnet \
    --name master-subnet \
    --address-prefixes 10.0.0.0/23 \
    --service-endpoints Microsoft.ContainerRegistry
    
  5. Aggiungere una subnet vuota per i nodi di lavoro.

    az network vnet subnet create \
    --resource-group $RESOURCEGROUP \
    --vnet-name aro-vnet \
    --name worker-subnet \
    --address-prefixes 10.0.2.0/23 \
    --service-endpoints Microsoft.ContainerRegistry
    
  6. Disabilitare i criteri dell'endpoint privato della subnet nella subnet master. Questa operazione è necessaria per potersi connettere e gestire il cluster.

    az network vnet subnet update \
    --name master-subnet \
    --resource-group $RESOURCEGROUP \
    --vnet-name aro-vnet \
    --disable-private-link-service-network-policies true
    

Creare il cluster

Eseguire il comando seguente per creare un cluster. Facoltativamente, è possibile passare il segreto pull di Red Hat che consente al cluster di accedere ai registri contenitori di Red Hat unitamente a contenuto aggiuntivo.

Nota

Se si copiano/incollano comandi e si usa uno dei parametri facoltativi, assicurarsi di eliminare gli hashtag iniziali e il testo del commento finale. Chiudere anche l'argomento nella riga precedente del comando con una barra rovesciata finale.

az aro create \
  --resource-group $RESOURCEGROUP \
  --name $CLUSTER \
  --vnet aro-vnet \
  --master-subnet master-subnet \
  --worker-subnet worker-subnet \
  --apiserver-visibility Private \
  --ingress-visibility Private
  # --domain foo.example.com # [OPTIONAL] custom domain
  # --pull-secret @pull-secret.txt # [OPTIONAL]

Dopo l'esecuzione di az aro create, la creazione di un cluster richiede in genere circa 35 minuti.

Nota

Quando si tenta di creare un cluster, se viene visualizzato un messaggio di errore che informa che la quota di risorse è stata superata, vedere Aggiunta di quota all'account ARO per informazioni su come procedere.

Importante

Se si sceglie di specificare un dominio personalizzato, ad esempio foo.example.com, la console di OpenShift sarà disponibile tramite un URL, ad esempio https://console-openshift-console.apps.foo.example.com, invece del dominio predefinito https://console-openshift-console.apps.<random>.<location>.aroapp.io.

Per impostazione predefinita, OpenShift usa certificati autofirmati per tutte le route create in *.apps.<random>.<location>.aroapp.io. Se si sceglie DNS personalizzato, dopo la connessione al cluster, sarà necessario seguire la documentazione di OpenShift per configurare un certificato personalizzato per il controller di ingresso e il certificato personalizzato per il server API.

Creare un cluster privato senza un indirizzo IP pubblico

In genere, i cluster privati vengono creati con un indirizzo IP pubblico e un servizio di bilanciamento del carico, fornendo un mezzo per la connettività in uscita ad altri servizi. Tuttavia, è possibile creare un cluster privato senza un indirizzo IP pubblico. Ciò può essere necessario in situazioni in cui i requisiti di sicurezza o criteri impediscono l'uso di indirizzi IP pubblici.

Per creare un cluster privato senza un indirizzo IP pubblico, seguire la procedura precedente, aggiungendo il aro create parametro --outbound-type UserDefinedRouting al comando , come nell'esempio seguente:

az aro create \
  --resource-group $RESOURCEGROUP \
  --name $CLUSTER \
  --vnet aro-vnet \
  --master-subnet master-subnet \
  --worker-subnet worker-subnet \
  --apiserver-visibility Private \
  --ingress-visibility Private \
  --outbound-type UserDefinedRouting

Nota

Il flag UserDefinedRouting può essere usato solo durante la creazione di cluster con --apiserver-visibility Private parametri e --ingress-visibility Private . Assicurarsi di usare l'interfaccia della riga di comando di Azure più recente. I cluster distribuiti con l'interfaccia della riga di comando di Azure 2.52.0 e versioni precedenti verranno distribuiti con indirizzi IP pubblici.

Questa opzione di routing definito dall'utente impedisce il provisioning di un indirizzo IP pubblico. Il routing definito dall'utente consente di creare route personalizzate in Azure per eseguire l'override delle route di sistema predefinite o per aggiungere altre route alla tabella di route di una subnet. Per altre informazioni, vedere Routing del traffico di rete virtuale.

Importante

Assicurarsi di specificare la subnet corretta con la tabella di routing configurata correttamente durante la creazione del cluster privato.

Per l'uscita, l'opzione Routing definito dall'utente garantisce che il cluster appena creato disponga della funzionalità di blocco in uscita abilitata per consentire di proteggere il traffico in uscita dal nuovo cluster privato. Per altre informazioni, vedere Controllare il traffico in uscita per il cluster Azure Red Hat OpenShift (ARO).

Nota

Se si sceglie il tipo di rete Routing definito dall'utente, si è completamente responsabili della gestione del routing in uscita del cluster all'esterno della rete virtuale( ad esempio, ottenere l'accesso a Internet pubblico). Azure Red Hat OpenShift non può gestirlo.

È possibile configurare uno o più indirizzi IP in uscita a uno spazio dei nomi o a pod specifici in uno spazio dei nomi di un cluster privato senza indirizzo IP pubblico. A tale scopo, seguire la procedura precedente per creare un cluster privato senza un indirizzo IP pubblico e quindi configurare l'indirizzo IP in uscita in base a questo documento di Red Hat OpenShift. Questi indirizzi IP in uscita dovranno trovarsi dalle subnet associate al cluster ARO.

La configurazione di un indirizzo IP in uscita per un cluster privato ARO è supportata solo per i cluster con il --outbound-type UserDefinedRouting parametro . Non è supportato per i cluster ARO pubblici con il --outbound-type LoadBalancer parametro .

Connettersi al cluster privato

È possibile accedere al cluster tramite l'utente kubeadmin. Eseguire il comando seguente per trovare la password per l'utente kubeadmin.

az aro list-credentials \
  --name $CLUSTER \
  --resource-group $RESOURCEGROUP

L'output di esempio seguente mostra che la password sarà in kubeadminPassword.

{
  "kubeadminPassword": "<generated password>",
  "kubeadminUsername": "kubeadmin"
}

È possibile trovare l'URL della console del cluster eseguendo il comando seguente, simile al seguente: https://console-openshift-console.apps.<random>.<region>.aroapp.io/

 az aro show \
    --name $CLUSTER \
    --resource-group $RESOURCEGROUP \
    --query "consoleProfile.url" -o tsv

Importante

Per connettersi a un cluster Azure Red Hat OpenShift privato, è necessario eseguire il passaggio seguente da un host che si trova nel Rete virtuale creato o in un Rete virtuale con peering con il Rete virtuale in cui è stato distribuito il cluster.

Avviare l'URL della console in un browser e accedere usando le credenziali kubeadmin.

Screenshot that shows the Azure Red Hat OpenShift login screen.

Installare l'interfaccia della riga di comando di OpenShift

Dopo aver eseguito l'accesso alla console Web OpenShift, fare clic su ? in alto a destra e quindi su Strumenti da riga di comando. Scaricare la versione appropriata per il computer.

Image shows Azure Red Hat OpenShift login screen

È anche possibile scaricare la versione più recente dell'interfaccia della riga di comando appropriata per il computer.

Connettersi usando l'interfaccia della riga di comando di OpenShift

Recuperare l'indirizzo del server API.

apiServer=$(az aro show -g $RESOURCEGROUP -n $CLUSTER --query apiserverProfile.url -o tsv)

Importante

Per connettersi a un cluster Azure Red Hat OpenShift privato, è necessario eseguire il passaggio seguente da un host che si trova nel Rete virtuale creato o in un Rete virtuale con peering con il Rete virtuale in cui è stato distribuito il cluster.

Accedere al server API del cluster OpenShift usando il comando seguente. Sostituire <kubeadmin password> con la password appena recuperata.

oc login $apiServer -u kubeadmin -p <kubeadmin password>

Passaggi successivi

In questo articolo è stato distribuito un cluster di Azure Red Hat OpenShift che esegue OpenShift 4. Contenuto del modulo:

  • Configurare i prerequisiti e creare la rete virtuale e la subnet obbligatorie
  • Distribuire un cluster
  • Connettersi al cluster tramite l'utente kubeadmin

Passare all'articolo successivo per informazioni su come configurare il cluster per l'autenticazione usando Microsoft Entra ID.