Een privécluster van Azure Red Hat OpenShift 4 maken

In dit artikel bereidt u uw omgeving voor om privéclusters van Azure Red Hat OpenShift te maken met OpenShift 4. U leert het volgende:

  • De vereisten instellen en het vereiste virtuele netwerk en subnetten maken
  • Een cluster implementeren met een privé-API-servereindpunt en een privé-ingangscontroller

Als u ervoor kiest om de CLI lokaal te installeren en te gebruiken, moet u voor deze zelfstudie versie 2.30.0 of hoger van Azure CLI uitvoeren. Voer az --version uit om de versie te bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.

Voordat u begint

De resourceproviders registreren

  1. Als u meerdere Azure-abonnementen hebt, geeft u de relevante abonnements-id op:

    az account set --subscription <SUBSCRIPTION ID>
    
  2. Registreer de resourceprovider Microsoft.RedHatOpenShift:

    az provider register -n Microsoft.RedHatOpenShift --wait
    
  3. Registreer de Microsoft.Compute resourceprovider (als u dat nog niet hebt gedaan):

    az provider register -n Microsoft.Compute --wait
    
  4. Registreer de Microsoft.Network resourceprovider (als u dat nog niet hebt gedaan):

    az provider register -n Microsoft.Network --wait
    
  5. Registreer de Microsoft.Storage resourceprovider (als u dat nog niet hebt gedaan):

    az provider register -n Microsoft.Storage --wait
    

Een pull-geheim voor Red Hat ophalen (optioneel)

Met een pull-geheim van Red Hat kan uw cluster toegang krijgen tot Red Hat-containerregisters en aanvullende inhoud. Deze stap is optioneel, maar wordt wel aanbevolen.

  1. Ga naar uw Red Hat OpenShift-clusterbeheerportal en meld u aan.

    U moet zich aanmelden bij uw Red Hat-account of een nieuw Red Hat-account maken met uw zakelijke e-mailadres en de voorwaarden accepteren.

  2. Klik op pull-geheim downloaden.

Bewaar het opgeslagen pull-secret.txt-bestand op een veilige plek; het wordt gebruikt bij het maken van elk cluster.

Wanneer u de opdracht az aro create uitvoert, kunt u verwijzen naar uw pull-geheim met behulp van de parameter --pull-secret @pull-secret.txt. Voer az aro create uit vanuit de map waarin u het pull-secret.txt-bestand hebt opgeslagen. Vervang anders @pull-secret.txt door @<path-to-my-pull-secret-file.

Als u uw pull-geheim kopieert of ernaar verwijst in andere scripts, moet uw pull-geheim worden opgemaakt als een geldige JSON-tekenreeks.

Een virtueel netwerk met twee lege subnetten maken

Vervolgens maakt u een virtueel netwerk met twee lege subnetten.

  1. Stel de volgende variabelen in.

    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. Een resourcegroep maken

    Een Azure-resourcegroep is een logische groep waarin Azure-resources worden geïmplementeerd en beheerd. Wanneer u een resourcegroep maakt, wordt u gevraagd een locatie op te geven. Op deze locatie worden metagegevens van de resourcegroep opgeslagen, maar ook waar uw resources worden uitgevoerd in Azure als u geen andere regio opgeeft tijdens het maken van resources. Maak een resourcegroep met de opdracht [az group create][az-group-create].

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

    In de volgende voorbeelduitvoer ziet u dat de resourcegroep is gemaakt:

    {
    "id": "/subscriptions/<guid>/resourceGroups/aro-rg",
    "location": "eastus",
    "managedBy": null,
    "name": "aro-rg",
    "properties": {
        "provisioningState": "Succeeded"
    },
    "tags": null
    }
    
  3. Maak een virtueel netwerk.

    Azure Red Hat OpenShift-clusters met OpenShift 4 vereisen een virtueel netwerk met twee lege subnetten voor de hoofd- en werkknooppunten.

    Maak een nieuw virtueel netwerk in de resourcegroep die u eerder hebt gemaakt.

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

    In de volgende voorbeelduitvoer ziet u dat het virtuele netwerk is gemaakt:

    {
    "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. Voeg een leeg subnet toe voor de hoofdknooppunten.

    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. Voeg een leeg subnet toe voor de werkknooppunten.

    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. Beleid voor privé-eindpunten voor subnetten uitschakelen in het hoofdsubnet. Dit is vereist om verbinding te kunnen maken met het cluster en het te beheren.

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

Het cluster maken

Voer de volgende opdracht uit om een cluster te maken. U kunt eventueel uw pull-geheim van Red Hat doorvoeren, zodat uw cluster toegang krijgt tot Red Hat-containerregisters en aanvullende inhoud.

Notitie

Als u opdrachten kopieert/plakt en een van de optionele parameters gebruikt, moet u de eerste hashtags en de tekst van de afsluitende opmerking verwijderen. Sluit ook het argument op de voorgaande regel van de opdracht af met een afsluitende backslash.

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]

Nadat de az aro create-opdracht is uitgevoerd, duurt het doorgaans ongeveer 35 minuten om een cluster te maken.

Notitie

Als u probeert een cluster te maken, ziet u een foutbericht waarin wordt aangegeven dat uw resourcequotum is overschreden, raadpleegt u Quotum toevoegen aan ARO-account voor meer informatie over hoe u doorgaat.

Belangrijk

Als u ervoor kiest om een aangepast domein op te geven, bijvoorbeeld foo.example.com, is de OpenShift-console beschikbaar op een URL, zoals https://console-openshift-console.apps.foo.example.com, in plaats van in het ingebouwde domein https://console-openshift-console.apps.<random>.<location>.aroapp.io.

Standaard maakt OpenShift gebruik van zelfondertekende certificaten voor alle routes die zijn gemaakt op *.apps.<random>.<location>.aroapp.io. Als u Aangepaste DNS kiest nadat u verbinding hebt gemaakt met het cluster, moet u de OpenShift-documentatie volgen om een aangepast certificaat te configureren voor uw ingangscontroller en aangepast certificaat voor uw API-server.

Een privécluster maken zonder een openbaar IP-adres

Privéclusters worden meestal gemaakt met een openbaar IP-adres en een load balancer, wat een middel biedt voor uitgaande connectiviteit met andere services. U kunt echter een privécluster maken zonder een openbaar IP-adres. Dit kan vereist zijn in situaties waarin beveiligings- of beleidsvereisten het gebruik van openbare IP-adressen verbieden.

Als u een privécluster wilt maken zonder een openbaar IP-adres, volgt u de bovenstaande procedure en voegt u de parameter --outbound-type UserDefinedRouting toe aan de aro create opdracht, zoals in het volgende voorbeeld:

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

Notitie

De vlag UserDefinedRouting kan alleen worden gebruikt bij het maken van clusters met --apiserver-visibility Private en --ingress-visibility Private parameters. Zorg ervoor dat u de nieuwste Azure CLI gebruikt. Clusters die zijn geïmplementeerd met Azure CLI 2.52.0 en ouder, worden geïmplementeerd met openbare IP-adressen.

Deze door de gebruiker gedefinieerde routeringsoptie voorkomt dat een openbaar IP-adres wordt ingericht. Met door de gebruiker gedefinieerde routering (UDR) kunt u aangepaste routes maken in Azure om de standaardsysteemroutes te overschrijven of om meer routes toe te voegen aan de routetabel van een subnet. Zie Routering van virtueel netwerkverkeer voor meer informatie.

Belangrijk

Zorg ervoor dat u het juiste subnet opgeeft met de correct geconfigureerde routeringstabel bij het maken van uw privécluster.

Voor uitgaand verkeer zorgt de door de gebruiker gedefinieerde routeringsoptie ervoor dat voor het zojuist gemaakte cluster de vergrendelingsfunctie voor uitgaand verkeer is ingeschakeld, zodat u uitgaand verkeer van uw nieuwe privécluster kunt beveiligen. Zie Uitgaand verkeer beheren voor uw ARO-cluster (Azure Red Hat OpenShift) voor meer informatie.

Notitie

Als u het door de gebruiker gedefinieerde routeringsnetwerktype kiest, bent u volledig verantwoordelijk voor het beheren van het uitgaande verkeer van de routering buiten uw virtuele netwerk (bijvoorbeeld om toegang te krijgen tot openbaar internet). Azure Red Hat OpenShift kan dit niet voor u beheren.

U kunt een of meer uitgaande IP-adressen configureren voor een naamruimte of voor specifieke pods in een naamruimte van een privécluster zonder openbaar IP-adres. Volg hiervoor de bovenstaande procedure om een privécluster te maken zonder een openbaar IP-adres en configureer vervolgens het uitgaande IP-adres volgens dit Red Hat OpenShift-document. Deze uitgaande IP-adressen moeten afkomstig zijn van de subnetten die zijn gekoppeld aan het ARO-cluster.

Het configureren van een uitgaand IP-adres voor een privé-ARO-cluster wordt alleen ondersteund voor clusters met de --outbound-type UserDefinedRouting parameter. Het wordt niet ondersteund voor openbare ARO-clusters met de --outbound-type LoadBalancer parameter.

Verbinding maken naar het privécluster

U kunt zich aanmelden bij het cluster met behulp van de kubeadmin-gebruiker. Voer de volgende opdracht uit om het wachtwoord voor de kubeadmin-gebruiker te vinden.

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

In de volgende voorbeeld ziet u dat het wachtwoord in kubeadminPassword is.

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

U kunt de URL van de clusterconsole vinden door de volgende opdracht uit te voeren, die eruit ziet als https://console-openshift-console.apps.<random>.<region>.aroapp.io/

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

Belangrijk

Als u verbinding wilt maken met een privé-Azure Red Hat OpenShift-cluster, moet u de volgende stap uitvoeren vanaf een host die zich in het virtuele netwerk bevindt dat u hebt gemaakt of in een virtueel netwerk dat is gekoppeld aan het virtuele netwerk waarnaar het cluster is geïmplementeerd.

Start de console-URL in een browser en meld u aan met de referenties van kubeadmin.

Screenshot that shows the Azure Red Hat OpenShift login screen.

De OpenShift CLI installeren

Zodra u bent aangemeld bij de OpenShift-webconsole, klikt u op de ? in de rechterbovenhoek en vervolgens op opdrachtregelprogramma's. Download de versie die geschikt is voor uw computer.

Image shows Azure Red Hat OpenShift login screen

U kunt ook de nieuwste versie van de CLI downloaden die geschikt is voor uw computer.

Verbinding maken met behulp van OpenShift CLI

Haal het adres van de API-server op.

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

Belangrijk

Als u verbinding wilt maken met een privé-Azure Red Hat OpenShift-cluster, moet u de volgende stap uitvoeren vanaf een host die zich in het virtuele netwerk bevindt dat u hebt gemaakt of in een virtueel netwerk dat is gekoppeld aan het virtuele netwerk waarnaar het cluster is geïmplementeerd.

Meld u aan bij de API-server van het OpenShift-cluster met de volgende opdracht. Vervang <het kubeadmin-wachtwoord> door het wachtwoord dat u zojuist hebt opgehaald.

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

Volgende stappen

In dit artikel is een Azure Red Hat OpenShift-cluster met OpenShift 4 geïmplementeerd. U hebt geleerd hoe u:

  • De vereisten instellen en het vereiste virtuele netwerk en subnetten maken
  • Een cluster implementeren
  • Verbinding maken naar het cluster met behulp van de kubeadmin gebruiker

Ga naar het volgende artikel voor meer informatie over het configureren van het cluster voor verificatie met behulp van Microsoft Entra-id.