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. Si apprenderà come:
- 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
Se sono presenti più sottoscrizioni di Azure, specificare l'ID sottoscrizione pertinente:
az account set --subscription <SUBSCRIPTION ID>
Registrare il provider di risorse
Microsoft.RedHatOpenShift
:az provider register -n Microsoft.RedHatOpenShift --wait
Registrare il provider di risorse
Microsoft.Compute
(se non è già stato fatto):az provider register -n Microsoft.Compute --wait
Registrare il provider di risorse
Microsoft.Network
(se non è già stato fatto):az provider register -n Microsoft.Network --wait
Registrare il provider di risorse
Microsoft.Storage
(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 ad altri contenuti. Questo passaggio è facoltativo ma consigliato.
Passare al portale di gestione cluster di Red Hat OpenShift ed eseguire l'accesso.
Accedere all'account Red Hat o creare un nuovo account Red Hat con l'indirizzo di posta elettronica aziendale e accettare i termini e le condizioni.
Fare clic su Download pull secret (Scarica segreto pull).
Conservare il file pull-secret.txt
salvato in una posizione sicura perché viene 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 vi si fa riferimento in altri script, il segreto pull deve essere formattato come stringa JSON valida.
Creare una rete virtuale contenente due subnet vuote
Dopodiché, creare una rete virtuale contenente due subnet vuote.
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
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, specificare una posizione. Questo è il percorso in cui vengono archiviati i metadati del gruppo di risorse, ma anche quello in cui vengono eseguite le risorse in Azure se non si specifica un'altra area durante la creazione della risorsa. 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 }
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 di controllo 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" } }
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
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
Disabilitare i criteri per gli endpoint privati 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 ad altri contenuti.
Nota
Se si copiano/incollano i 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]
Il comando az aro create
richiede in genere circa 35 minuti per creare un cluster.
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 un DNS personalizzato dopo la connessione al cluster, è necessario attenersi alla documentazione di OpenShift per configurare un certificato personalizzato per il controller del traffico in ingresso e un 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 parametro --outbound-type UserDefinedRouting
al comando aro create
, 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 i parametri --apiserver-visibility Private
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 devono 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 parametro --outbound-type UserDefinedRouting
. Non è supportato per i cluster ARO pubblici con il parametro --outbound-type LoadBalancer
.
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
Il seguente output di esempio mostra la password in kubeadminPassword
.
{
"kubeadminPassword": "<generated password>",
"kubeadminUsername": "kubeadmin"
}
È possibile trovare l'URL della console del cluster eseguendo il comando seguente, simile a 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 privato di Azure Red Hat OpenShift, è necessario eseguire il passaggio seguente da un host che si trova nella rete virtuale creata o in una rete virtuale con peering con la rete virtuale in cui è stato distribuito il cluster.
Avviare l'URL della console in un browser e accedere usando le credenziali kubeadmin
.
Installare l'interfaccia della riga di comando di OpenShift
Dopo aver eseguito l'accesso alla console Web OpenShift, selezionare ? in alto a destra e quindi in Strumenti da riga di comando. Scaricare la versione appropriata per il computer.
È anche possibile scaricare la versione più recente dell'interfaccia della riga di comando appropriata per il proprio 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 privato di Azure Red Hat OpenShift, è necessario eseguire il passaggio seguente da un host che si trova nella rete virtuale creata o in una rete virtuale con peering con la rete virtuale in cui è stato distribuito il cluster.
Accedere al server API del cluster OpenShift usando il comando seguente. Sostituire < password kubeadmin> con la password 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
Per informazioni su come configurare il cluster per l'autenticazione tramite Microsoft Entra ID, passare all'articolo successivo.