Distribuire OpenShift Origin in macchine virtuali di Azure

OpenShift Origin è una piattaforma contenitore open source basata su Kubernetes. Semplifica distribuzione, ridimensionamento e uso delle applicazioni multi-tenant.

Questa guida descrive come distribuire OpenShift Origin in macchine virtuali di Azure tramite la CLI di Azure e i modelli di Azure Resource Manager. In questa esercitazione si apprenderà come:

  • Creare un insieme di credenziali delle chiavi per gestire le chiavi SSH per il cluster OpenShift.
  • Distribuire un cluster OpenShift in macchine virtuali di Azure.
  • Installare e configurare la CLI di OpenShift per gestire il cluster.
  • Personalizzare la distribuzione di OpenShift.

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Questa guida introduttiva richiede l'interfaccia della riga di comando di Azure 2.0.8 o versioni successive. Per trovare la versione, eseguire az --version. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure 2.0.

Avviare Azure Cloud Shell

Azure Cloud Shell è una shell Bash gratuita che può essere eseguita direttamente nel portale di Azure. Include l'interfaccia della riga di comando di Azure preinstallata e configurata per l'uso con l'account. Fare clic sul pulsante Cloud Shell nel menu nel riquadro in alto a destra nel portale di Azure.

Cloud Shell

Il pulsante avvia una shell interattiva che è possibile usare per eseguire tutti i passaggi in questo argomento:

Screenshot che mostra la finestra di Cloud Shell nel portale

Accedere ad Azure

Accedere alla sottoscrizione di Azure con il comando az login e seguire le istruzioni visualizzate oppure fare clic su Prova per usare Cloud Shell.

az login

Creare un gruppo di risorse

Creare un gruppo di risorse con il comando az group create. Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite.

L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella località stati uniti orientali.

az group create --name myResourceGroup --location eastus

Creare un insieme di credenziali delle chiavi

Creare un insieme di credenziali delle chiavi per archiviare le chiavi SSH per il cluster con il comando az keyvault create.

az keyvault create --resource-group myResourceGroup --name myKeyVault \
       --enabled-for-template-deployment true \
       --location eastus

Creare una chiave SSH

La chiave SSH è necessaria per proteggere l'accesso al cluster di OpenShift Origin. Creare una coppia di chiavi SSH usando il comando ssh-keygen.

ssh-keygen -f ~/.ssh/openshift_rsa -t rsa -N ''
Nota

La coppia di chiavi SSH che viene creata non deve avere una passphrase.

Per altre informazioni sulle chiavi SSH in Windows, vedere Come usare le chiavi SSH con Windows in Azure.

Archiviare la chiave privata SSH nell'insieme di credenziali per le chiavi

La distribuzione di OpenShift usa la chiave SSH che è stata creata per proteggere l'accesso al master di OpenShift. Per abilitare la distribuzione per recuperare in modo sicuro la chiave SSH, archiviare la chiave nell'insieme di credenziali per le chiavi usando il comando seguente.

Distribuzione abilitata per modello

az keyvault secret set --vault-name KeyVaultName --name OpenShiftKey --file ~/.ssh/openshift.rsa

Creare un'entità servizio

OpenShift comunica con Azure usando un nome utente e una password o un'entità servizio. Un'entità servizio di Azure è un'identità di sicurezza che è possibile usare con le app, con i servizi e con strumenti di automazione come OpenShift. Le autorizzazioni per le operazioni che l'entità servizio può eseguire in Azure vengono controllate e definite dall'utente. Per migliorare la sicurezza rispetto alla semplice immissione di nome utente e password, questo esempio crea un'entità servizio di base.

Creare un'entità servizio con az ad sp create-for-rbac e generare l'output delle credenziali necessarie per OpenShift:

az ad sp create-for-rbac --name openshiftsp \
          --role Contributor --password {strong password} \
          --scopes $(az group show --name myResourceGroup --query id)

Prendere nota della proprietà appId restituita dal comando.

{
  "appId": "a487e0c1-82af-47d9-9a0b-af184eb87646d",
  "displayName": "openshiftsp",
  "name": "http://openshiftsp",
  "password": {strong password},
  "tenant": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
Avviso

Non creare una password non sicura. Attenersi alle istruzioni relative a regole e limitazioni sulle password di Azure AD.

Per altre informazioni sulle entità servizio, vedere Creare un'entità servizio di Azure con l'interfaccia della riga di comando di Azure 2.0

Distribuire il modello di OpenShift Origin

A questo punto distribuire OpenShift Origin usando un modello di Azure Resource Manager.

Nota

Il comando seguente richiede l'interfaccia della riga di comando di Azure 2.0.8 o versione successiva. È possibile verificare la versione della CLI di Azure con il comando az --version. Per aggiornare la versione della CLI, vedere Installare l'interfaccia della riga di comando di Azure 2.0.

Usare il valore appId dall'entità servizio creata in precedenza per il parametro aadClientId.

az group deployment create --name myOpenShiftCluster \
      --template-uri https://raw.githubusercontent.com/Microsoft/openshift-origin/master/azuredeploy.json \
      --params \ 
        openshiftMasterPublicIpDnsLabel=myopenshiftmaster \
        infraLbPublicIpDnsLabel=myopenshiftlb \
        openshiftPassword=Pass@word!
        sshPublicKey=~/.ssh/openshift_rsa.pub \
        keyVaultResourceGroup=myResourceGroup \
        keyVaultName=myKeyVault \
        keyVaultSecret=OpenShiftKey \
        aadClientId={appId} \
        aadClientSecret={strong password} 

Il completamento della distribuzione richiede fino a 20 minuti. Al termine della distribuzione, l'URL della console di OpenShift e il nome DNS del master di OpenShift vengono visualizzati sul terminale.

{
  "OpenShift Console Uri": "http://openshiftlb.cloudapp.azure.com:8443/console",
  "OpenShift Master SSH": "ocpadmin@myopenshiftmaster.cloudapp.azure.com"
}

Eseguire la connessione al cluster OpenShift

Al termine della distribuzione, eseguire la connessione alla console di OpenShift tramite il browser immettendo OpenShift Console Uri. In alternativa, è possibile connettersi al master di OpenShift usando il comando seguente.

$ ssh ocpadmin@myopenshiftmaster.cloudapp.azure.com

Pulire le risorse

Quando non servono più, è possibile rimuovere il gruppo di risorse, il cluster OpenShift e tutte le risorse correlate tramite il comando az group delete.

az group delete --name myResourceGroup

Passaggi successivi

Questa esercitazione ha illustrato come:

  • Creare un insieme di credenziali delle chiavi per gestire le chiavi SSH per il cluster OpenShift.
  • Distribuire un cluster OpenShift in macchine virtuali di Azure.
  • Installare e configurare la CLI di OpenShift per gestire il cluster.

A questo punto il cluster OpenShift Origin è stato distribuito. È possibile seguire le esercitazioni di OpenShift per imparare a distribuire la prima applicazione e a usare gli strumenti di OpenShift. Per una panoramica iniziale, vedere Getting Started with OpenShift Origin (Introduzione a OpenShift Origin).