OpenShift Container Platform 3.11 implementeren in Azure

Van toepassing op: ✔️ Virtuele Linux-heavy_check_mark: Flexibele schaalsets

U kunt een van de volgende methoden gebruiken om OpenShift Container Platform 3.11 in Azure te implementeren:

  • U kunt de benodigde onderdelen van de Azure-infrastructuur handmatig implementeren en vervolgens de OpenShift Container Platform-documentatie volgen.
  • U kunt ook een bestaande Resource Manager die de implementatie van het OpenShift Container Platform-cluster vereenvoudigt.
  • Een andere optie is om de Azure Marketplace gebruiken.

Voor alle opties is een Red Hat-abonnement vereist. Tijdens de implementatie wordt Red Hat Enterprise Linux-exemplaar geregistreerd bij het Red Hat-abonnement en gekoppeld aan de pool-id die de rechten voor OpenShift Container Platform bevat. Zorg ervoor dat u een geldige gebruikersnaam, wachtwoord en pool-id hebt voor Red Hat Subscription Manager (RHSM). U kunt een activeringssleutel, organisatie-id en pool-id gebruiken. U kunt deze informatie controleren door u aan te melden bij https://access.redhat.com .

Implementeren met behulp van de sjabloon OpenShift Container Platform Resource Manager 3.11

Privéclusters

Voor het implementeren van privé-OpenShift-clusters is meer vereist dan alleen het niet hebben van een openbaar IP-adres dat is gekoppeld aan de hoofd-load balancer (webconsole) of aan de load balancer infrastructuurrevisor (router). Een privécluster maakt doorgaans gebruik van een aangepaste DNS-server (niet de standaard-Azure DNS), een aangepaste domeinnaam (zoals contoso.com) en vooraf gedefinieerde virtuele netwerken. Voor privéclusters moet u uw virtuele netwerk vooraf configureren met alle juiste subnetten en DNS-serverinstellingen. Gebruik vervolgens existingMasterSubnetReference, existingInfraSubnetReference, existingCnsSubnetReference en existingNodeSubnetReference om het bestaande subnet op te geven voor gebruik door het cluster.

Als privémaster is geselecteerd (masterClusterType=private), moet er een statisch privé-IP-adres worden opgegeven voor masterPrivateClusterIp. Dit IP-adres wordt toegewezen aan de front-end van de hoofd-load balancer. Het IP-adres moet zich binnen de CIDR voor het hoofdsubnet en niet in gebruik zijn. masterClusterDnsType moet worden ingesteld op 'aangepast' en de DNS-hoofdnaam moet worden opgegeven voor masterClusterDns. De DNS-naam moet worden toegepast op het statische privé-IP-adres en wordt gebruikt voor toegang tot de console op de hoofdknooppunten.

Als privérouter is geselecteerd (routerClusterType=privé), moet een statisch privé-IP-adres worden opgegeven voor routerPrivateClusterIp. Dit IP-adres wordt toegewezen aan de front-end van de infrastructuur load balancer. Het IP-adres moet zich binnen de CIDR voor het infrastructuursubnet en niet in gebruik zijn. routingSubDomainType moet worden ingesteld op 'aangepast' en de DNS-naam met jokertekens voor routering moet worden opgegeven voor routingSubDomain.

Als privé-masters en privérouters zijn geselecteerd, moet de aangepaste domeinnaam ook worden ingevoerd voor domainName

Na een geslaagde implementatie is het Bastion-knooppunt het enige knooppunt met een openbaar IP-adres waar u SSH in kunt gebruiken. Zelfs als de hoofdknooppunten zijn geconfigureerd voor openbare toegang, worden ze niet blootgesteld voor SSH-toegang.

Als u wilt implementeren met behulp Resource Manager sjabloon, gebruikt u een parametersbestand om de invoerparameters op te geven. Als u de implementatie verder wilt aanpassen, vert u de GitHub en wijzigt u de juiste items.

Enkele algemene aanpassingsopties zijn onder andere, maar zijn niet beperkt tot:

  • Bastion-VM-grootte (variabele in azuredeploy.json)
  • Naamconventeiten (variabelen in azuredeploy.json)
  • Details van OpenShift-cluster, gewijzigd via hosts-bestand (deployOpenShift.sh)

Het parametersbestand configureren

De OpenShift Container Platform-sjabloon heeft meerdere vertakkingen die beschikbaar zijn voor verschillende versies van OpenShift Container Platform. Op basis van uw behoeften kunt u rechtstreeks vanuit de repo implementeren of u kunt de repo vervorken en aangepaste wijzigingen aanbrengen in de sjablonen of scripts voordat u implementeert.

Gebruik de appId waarde van de service-principal die u eerder hebt gemaakt voor de aadClientId parameter .

In het volgende voorbeeld ziet u een parametersbestand met de naam azuredeploy.parameters.json met alle vereiste invoer.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "_artifactsLocation": {
            "value": "https://raw.githubusercontent.com/Microsoft/openshift-container-platform/master"
        },
        "location": {
            "value": "eastus"
        },
        "masterVmSize": {
            "value": "Standard_E2s_v3"
        },
        "infraVmSize": {
            "value": "Standard_D4s_v3"
        },
        "nodeVmSize": {
            "value": "Standard_D4s_v3"
        },
        "cnsVmSize": {
            "value": "Standard_E4s_v3"
        },
        "osImageType": {
            "value": "defaultgallery"
        },
        "marketplaceOsImage": {
            "value": {
                "publisher": "RedHat",
                "offer": "RHEL",
                "sku": "7-RAW",
                "version": "latest"
            }
        },
        "storageKind": {
            "value": "changeme"
        },
        "openshiftClusterPrefix": {
            "value": "changeme"
        },
        "minorVersion": {
            "value": "69"
        },
        "masterInstanceCount": {
            "value": 3
        },
        "infraInstanceCount": {
            "value": 3
        },
        "nodeInstanceCount": {
            "value": 3
        },
        "cnsInstanceCount": {
            "value": 3
        },
        "osDiskSize": {
            "value": 64
        },
        "dataDiskSize": {
            "value": 64
        },
        "cnsGlusterDiskSize": {
            "value": 128
        },
        "adminUsername": {
            "value": "changeme"
        },
        "enableMetrics": {
            "value": "false"
        },
        "enableLogging": {
            "value": "false"
        },
        "enableCNS": {
            "value": "false"
        },
        "rhsmUsernameOrOrgId": {
            "value": "changeme"
        },
        "rhsmPoolId": {
            "value": "changeme"
        },
        "rhsmBrokerPoolId": {
            "value": "changeme"
        },
        "sshPublicKey": {
            "value": "GEN-SSH-PUB-KEY"
        },
        "keyVaultSubscriptionId": {
            "value": "255a325e-8276-4ada-af8f-33af5658eb34"
        },
        "keyVaultResourceGroup": {
            "value": "changeme"
        },
        "keyVaultName": {
            "value": "changeme"
        },
        "enableAzure": {
            "value": "true"
        },
        "aadClientId": {
            "value": "changeme"
        },
        "domainName": {
            "value": "contoso.com"
        },
        "masterClusterDnsType": {
            "value": "default"
        },
        "masterClusterDns": {
            "value": "console.contoso.com"
        },
        "routingSubDomainType": {
            "value": "nipio"
        },
        "routingSubDomain": {
            "value": "apps.contoso.com"
        },
        "virtualNetworkNewOrExisting": {
            "value": "new"
        },
        "virtualNetworkName": {
            "value": "changeme"
        },
        "addressPrefixes": {
            "value": "10.0.0.0/14"
        },
        "masterSubnetName": {
            "value": "changeme"
        },
        "masterSubnetPrefix": {
            "value": "10.1.0.0/16"
        },
        "infraSubnetName": {
            "value": "changeme"
        },
        "infraSubnetPrefix": {
            "value": "10.2.0.0/16"
        },
        "nodeSubnetName": {
            "value": "changeme"
        },
        "nodeSubnetPrefix": {
            "value": "10.3.0.0/16"
        },
        "existingMasterSubnetReference": {
            "value": "/subscriptions/abc686f6-963b-4e64-bff4-99dc369ab1cd/resourceGroups/vnetresourcegroup/providers/Microsoft.Network/virtualNetworks/openshiftvnet/subnets/mastersubnet"
        },
        "existingInfraSubnetReference": {
            "value": "/subscriptions/abc686f6-963b-4e64-bff4-99dc369ab1cd/resourceGroups/vnetresourcegroup/providers/Microsoft.Network/virtualNetworks/openshiftvnet/subnets/infrasubnet"
        },
        "existingCnsSubnetReference": {
            "value": "/subscriptions/abc686f6-963b-4e64-bff4-99dc369ab1cd/resourceGroups/vnetresourcegroup/providers/Microsoft.Network/virtualNetworks/openshiftvnet/subnets/cnssubnet"
        },
        "existingNodeSubnetReference": {
            "value": "/subscriptions/abc686f6-963b-4e64-bff4-99dc369ab1cd/resourceGroups/vnetresourcegroup/providers/Microsoft.Network/virtualNetworks/openshiftvnet/subnets/nodesubnet"
        },
        "masterClusterType": {
            "value": "public"
        },
        "masterPrivateClusterIp": {
            "value": "10.1.0.200"
        },
        "routerClusterType": {
            "value": "public"
        },
        "routerPrivateClusterIp": {
            "value": "10.2.0.200"
        },
        "routingCertType": {
            "value": "selfsigned"
        },
        "masterCertType": {
            "value": "selfsigned"
        }
    }
}

Vervang de parameters door uw specifieke informatie.

Verschillende releases kunnen verschillende parameters hebben, dus controleer de benodigde parameters voor de vertakking die u gebruikt.

azuredeploy. Uitleg van het bestand Parameters.json

Eigenschap Beschrijving Geldige opties Standaardwaarde
_artifactsLocation URL voor artefacten (json, scripts, enzovoort) https: / /raw.githubusercontent.com/Microsoft/openshift-container-platform/master
location Azure-regio voor het implementeren van resources in
masterVmSize Grootte van de hoofd-VM. Selecteer een van de toegestane VM-grootten die worden vermeld in het bestand azuredeploy.json Standard_E2s_v3
infraVmSize Grootte van de infrastructuur-VM. Selecteer een van de toegestane VM-grootten die worden vermeld in het bestand azuredeploy.json Standard_D4s_v3
nodeVmSize Grootte van de app-knooppunt-VM. Selecteer een van de toegestane VM-grootten die worden vermeld in het bestand azuredeploy.json Standard_D4s_v3
cnsVmSize Grootte van de Container Native Storage (CNS)-knooppunt-VM. Selecteer een van de toegestane VM-grootten die worden vermeld in het bestand azuredeploy.json Standard_E4s_v3
osImageType De RHEL-afbeelding die moet worden gebruikt. defaultgallery: Op aanvraag; marketplace: afbeelding van derden defaultgallery
marketplace
defaultgallery
marketplaceOsImage Als marketplace is, voert u de juiste waarden in voor osImageType 'uitgever', 'aanbieding', 'sku', 'versie' van de Marketplace-aanbieding. Deze parameter is een objecttype
storageKind Het type opslag dat moet worden gebruikt Beheerd
Onbeheerde
Beheerd
openshiftClusterPrefix Cluster prefix gebruikt voor het configureren van hostnamen voor alle knooppunten. Tussen 1 en 20 tekens mycluster
minoVersion De secundaire versie van OpenShift Container Platform 3.11 om te implementeren 69
masterInstanceCount Aantal mastersknooppunten dat moet worden geïmplementeerd 1, 3, 5 3
infraInstanceCount Aantal infraknooppunten dat moet worden geïmplementeerd 1, 2, 3 3
nodeInstanceCount Aantal knooppunten dat moet worden geïmplementeerd 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 2
cnsInstanceCount Aantal CNS-knooppunten dat moet worden geïmplementeerd 3, 4 3
osDiskSize Grootte van de besturingssysteemschijf voor de VM (in GB) 64, 128, 256, 512, 1024, 2048 64
dataDiskSize Grootte van de gegevensschijf die moet worden gekoppeld aan knooppunten voor Docker-volume (in GB) 32, 64, 128, 256, 512, 1024, 2048 64
cnsGlusterDiskSize Grootte van de gegevensschijf die moet worden gekoppeld aan CNS-knooppunten voor gebruik door sterretjes (in GB) 32, 64, 128, 256, 512, 1024, 2048 128
adminUsername Gebruikersnaam van beheerder voor aanmelding bij zowel het besturingssysteem (VM) als de eerste OpenShift-gebruiker ocpadmin
enableMetrics Metrische gegevens inschakelen. Voor metrische gegevens zijn meer resources vereist, dus selecteer de juiste grootte voor de infrastructuur-VM waar
onjuist
onjuist
enableLogging Logboekregistratie inschakelen. ElasticSearch-pod vereist 8 GB RAM-geheugen, dus selecteer de juiste grootte voor de infra-VM waar
onjuist
onjuist
enableCNS Container Native-Storage waar
onjuist
onjuist
rhsmUsernameOrOrgId Gebruikersnaam of organisatie-id van Red Hat Subscription Manager
rhsmPoolId De Red Hat Subscription Manager-pool-id die uw OpenShift-rechten voor rekenknooppunten bevat
rhsmBrokerPoolId De Red Hat Subscription Manager-pool-id die uw OpenShift-rechten voor masters en infraknooppunten bevat. Als u geen andere pool-id's hebt, voert u dezelfde pool-id in als 'rhsmPoolId'
sshPublicKey Kopieer hier uw openbare SSH-sleutel
keyVaultSubscriptionId De abonnements-id van het abonnement dat de Key Vault
keyVaultResourceGroup De naam van de resourcegroep die de Key Vault
keyVaultName De naam van de Key Vault u hebt gemaakt
enableAzure Azure Cloud Provider inschakelen waar
onjuist
true
aadClientId Azure Active Directory Client-id ook wel toepassings-id voor service-principal genoemd
domainName Naam van de te gebruiken aangepaste domeinnaam (indien van toepassing). Ingesteld op 'geen' als er geen volledig privécluster wordt geïmplementeerd geen
masterClusterDnsType Domeintype voor OpenShift-webconsole. 'default' gebruikt het DNS-label van het openbare IP-adres van master infra. Met 'aangepast' kunt u uw eigen naam definiëren standaardinstelling
aangepast
standaardinstelling
masterClusterDns De aangepaste DNS-naam die moet worden gebruikt voor toegang tot de OpenShift-webconsole als u 'aangepast' hebt geselecteerd voor masterClusterDnsType console.contoso.com
routingSubDomainType Als deze is ingesteld nipio op , routingSubDomain wordt nip.io gebruikt. Gebruik 'aangepast' als u uw eigen domein hebt dat u wilt gebruiken voor routering nipio
aangepast
nipio
routingSubDomain De DNS-naam met jokertekens die u wilt gebruiken voor routering als u 'aangepast' hebt geselecteerd voor routingSubDomainType apps.contoso.com
virtualNetworkNewOrExisting Selecteer of u een bestaand Virtual Network of een nieuw Virtual Network Bestaande
nieuw
nieuw
virtualNetworkResourceGroupName Naam van de resourcegroep voor de nieuwe Virtual Network als u 'nieuw' hebt geselecteerd voor virtualNetworkNewOrExisting resourceGroup().name
virtualNetworkName De naam van de nieuwe Virtual Network als u 'nieuw' hebt geselecteerd voor virtualNetworkNewOrExisting openshiftvnet
addressPrefixes Adres voorvoegsel van het nieuwe virtuele netwerk 10.0.0.0/14
masterSubnetName De naam van het hoofdsubnet mastersubnet
masterSubnetPrefix CIDR die wordt gebruikt voor het hoofdsubnet: moet een subset van het addressPrefix zijn 10.1.0.0/16
infraSubnetName De naam van het infrastructuursubnet infrasubnet
infraSubnetPrefix CIDR die wordt gebruikt voor het infrastructuursubnet- moet een subset van het addressPrefix zijn 10.2.0.0/16
nodeSubnetName De naam van het knooppuntsubnet nodesubnet
nodeSubnetPrefix CIDR die wordt gebruikt voor het knooppuntsubnet- moet een subset van het addressPrefix zijn 10.3.0.0/16
existingMasterSubnetReference Volledige verwijzing naar bestaand subnet voor hoofdknooppunten. Niet nodig bij het maken van een nieuw vNet/subnet
existingInfraSubnetReference Volledige verwijzing naar bestaand subnet voor infrastructuurknooppunten. Niet nodig bij het maken van een nieuw vNet/subnet
existingCnsSubnetReference Volledige verwijzing naar bestaand subnet voor CNS-knooppunten. Niet nodig bij het maken van een nieuw vNet/subnet
existingNodeSubnetReference Volledige verwijzing naar bestaand subnet voor rekenknooppunten. Niet nodig bij het maken van een nieuw vNet/subnet
masterClusterType Geef op of het cluster privé- of openbare hoofdknooppunten gebruikt. Als u privé kiest, worden de hoofdknooppunten niet via een openbaar IP-adres blootgesteld aan internet. In plaats daarvan wordt het privé-IP-adres gebruikt dat is opgegeven in de masterPrivateClusterIp Openbare
Privé
Openbare
masterPrivateClusterIp Als er privé-hoofdknooppunten zijn geselecteerd, moet er een privé-IP-adres worden opgegeven voor gebruik door de interne load balancer voor hoofdknooppunten. Dit statische IP-adres moet zich binnen het CIDR-blok voor het hoofdsubnet en niet al in gebruik zijn. Als openbare hoofdknooppunten zijn geselecteerd, wordt deze waarde niet gebruikt, maar moet deze wel worden opgegeven 10.1.0.200
routerClusterType Geef op of het cluster privé- of openbare infraknooppunten gebruikt. Als er een privé-verbinding wordt gekozen, worden de infraknooppunten niet via een openbaar IP-adres beschikbaar gesteld aan internet. In plaats daarvan wordt het privé-IP-adres gebruikt dat is opgegeven in de routerPrivateClusterIp Openbare
Privé
Openbare
routerPrivateClusterIp Als er privé-infraknooppunten zijn geselecteerd, moet er een privé-IP-adres worden opgegeven voor gebruik door de interne load balancer voor infrastructuurknooppunten. Dit statische IP-adres moet zich binnen het CIDR-blok voor het infrastructuursubnet en niet al in gebruik zijn. Als openbare infraknooppunten zijn geselecteerd, wordt deze waarde niet gebruikt, maar moet deze wel worden opgegeven 10.2.0.200
routingCertType Aangepast certificaat gebruiken voor routeringsdomein of het standaard zelf-ondertekende certificaat: volg de instructies in de sectie Aangepaste certificaten zelfondertekend
aangepast
zelfondertekend
masterCertType Aangepast certificaat gebruiken voor het hoofddomein of het standaard zelf-ondertekende certificaat: volg de instructies in de sectie Aangepaste certificaten zelfondertekend
aangepast
zelfondertekend

Implementeren met behulp van Azure CLI

Notitie

Voor de volgende opdracht is Azure CLI 2.0.8 of hoger vereist. U kunt de CLI-versie controleren met de az --version opdracht . Zie Azure CLI installeren om de CLI-versie bij te werken.

In het volgende voorbeeld worden het OpenShift-cluster en alle gerelateerde resources geïmplementeerd in een resourcegroep met de naam openshiftrg, met de implementatienaam myOpenShiftCluster. Er wordt rechtstreeks vanuit de GitHub verwezen naar de sjabloon en er wordt een lokaal parametersbestand met de naam azuredeploy.parameters.json gebruikt.

az deployment group create -g openshiftrg --name myOpenShiftCluster \
      --template-uri https://raw.githubusercontent.com/Microsoft/openshift-container-platform/master/azuredeploy.json \
      --parameters @./azuredeploy.parameters.json

De implementatie duurt ten minste 60 minuten, op basis van het totale aantal geïmplementeerde knooppunten en de geconfigureerde opties. De Bastion DNS FQDN en URL van de OpenShift-console worden naar de terminal afgedrukt wanneer de implementatie is voltooien.

{
  "Bastion DNS FQDN": "bastiondns4hawllzaavu6g.eastus.cloudapp.azure.com",
  "OpenShift Console URL": "http://openshiftlb.eastus.cloudapp.azure.com/console"
}

Als u de opdrachtregel niet wilt vastbinden totdat de implementatie is voltooid, voegt u toe als een van de opties --no-wait voor de groepsimplementatie. De uitvoer van de implementatie kan worden opgehaald uit de Azure Portal in de implementatiesectie voor de resourcegroep.

Verbinding maken aan het OpenShift-cluster

Wanneer de implementatie is uitgevoerd, haalt u de verbinding op uit de uitvoersectie van de implementatie. Verbinding maken naar de OpenShift-console met uw browser met behulp van de URL van de OpenShift-console. U kunt ook via SSH naar de Bastion-host gaan. Hier volgt een voorbeeld waarin de gebruikersnaam van de beheerder clusteradmin is en de FQDN van het openbare IP-ADRES van bastion bastiondns4hawllzaavu6g.eastus.cloudapp.azure.com:

$ ssh clusteradmin@bastiondns4hawllzaavu6g.eastus.cloudapp.azure.com

Resources opschonen

Gebruik de opdracht az group delete om de resourcegroep, het OpenShift-cluster en alle gerelateerde resources te verwijderen wanneer ze niet meer nodig zijn.

az group delete --name openshiftrg

Volgende stappen