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