Quickstart: Een Azure Nexus Kubernetes-cluster maken met behulp van Azure CLI
- Implementeer een Azure Nexus Kubernetes-cluster met behulp van Azure CLI.
Voordat u begint
Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
Installeer de nieuwste versie van de benodigde Azure CLI-extensies.
Voor dit artikel is versie 2.61.0 of hoger van de Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.
Als u meerdere Azure-abonnementen hebt, selecteert u de juiste abonnements-id waarin de resources moeten worden gefactureerd met behulp van de
az account
opdracht.Raadpleeg de vm-SKU-tabel in de referentiesectie voor de lijst met ondersteunde VM-SKU's.
Raadpleeg de ondersteunde Kubernetes-versies voor de lijst met ondersteunde Kubernetes-versies.
Maak een resourcegroep met behulp van de
az group create
opdracht. 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. Deze locatie is de opslaglocatie van de metagegevens van uw resourcegroep en waar uw resources worden uitgevoerd in Azure als u geen andere regio opgeeft tijdens het maken van de resource. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie VS - oost.az group create --name myResourceGroup --location eastus
Het volgende uitvoervoorbeeld lijkt op het maken van de resourcegroep:
{ "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup", "location": "eastus", "managedBy": null, "name": "myResourceGroup", "properties": { "provisioningState": "Succeeded" }, "tags": null }
Als u een Bicep-bestand of ARM-sjabloon wilt implementeren, hebt u schrijftoegang nodig voor de resources die u implementeert en moet u zijn gemachtigd om alle bewerkingen op het resourcetype Microsoft.Resources/deployments te kunnen uitvoeren. Als u bijvoorbeeld een cluster wilt implementeren, hebt u machtigingen voor Microsoft.NetworkCloud/kubernetesclusters/write en Microsoft.Resources/deployments/* nodig. Zie Ingebouwde Azure-rollen voor een lijst met rollen en machtigingen.
U hebt de
custom location
resource-id van uw Azure Operator Nexus-cluster nodig.U moet verschillende netwerken maken op basis van uw specifieke workloadvereisten en het is essentieel dat de juiste IP-adressen beschikbaar zijn voor uw workloads. Om een soepele implementatie te garanderen, is het raadzaam om de relevante ondersteuningsteams te raadplegen voor hulp.
In deze snelstart wordt ervan uitgegaan dat u een basisbegrip hebt van Kubernetes-concepten. Zie Kubernetes-kernconcepten voor Azure Kubernetes Service (AKS) voor meer informatie.
Een Azure Nexus Kubernetes-cluster maken
In het volgende voorbeeld wordt een cluster met de naam myNexusK8sCluster gemaakt in resourcegroep myResourceGroup op de locatie eastus .
Voordat u de opdrachten uitvoert, moet u verschillende variabelen instellen om de configuratie voor uw cluster te definiëren. Dit zijn de variabelen die u moet instellen, samen met enkele standaardwaarden die u voor bepaalde variabelen kunt gebruiken:
Variabele | Beschrijving |
---|---|
LOCATIE | De Azure-regio waar u uw cluster wilt maken. |
RESOURCE_GROUP | De naam van de Azure-resourcegroep waar u het cluster wilt maken. |
SUBSCRIPTION_ID | De id van uw Azure-abonnement. |
CUSTOM_LOCATION | Dit argument specificeert een aangepaste locatie van het Nexus-exemplaar. |
CSN_ARM_ID | CSN-id is de unieke id voor het cloudservicesnetwerk dat u wilt gebruiken. |
CNI_ARM_ID | CNI-id is de unieke id voor de netwerkinterface die moet worden gebruikt door de containerruntime. |
AAD_ADMIN_GROUP_OBJECT_ID | De object-id van de Microsoft Entra-groep met beheerdersbevoegdheden voor het cluster. |
CLUSTER_NAME | De naam die u wilt geven aan uw Nexus Kubernetes-cluster. |
K8S_VERSION | De versie van Kubernetes die u wilt gebruiken. |
ADMIN_USERNAME | De gebruikersnaam voor de clusterbeheerder. |
SSH_PUBLIC_KEY | De openbare SSH-sleutel die wordt gebruikt voor beveiligde communicatie met het cluster. |
CONTROL_PLANE_COUNT | Het aantal besturingsvlakknooppunten voor het cluster. |
CONTROL_PLANE_VM_SIZE | De grootte van de virtuele machine voor de besturingsvlakknooppunten. |
INITIAL_AGENT_POOL_NAME | De naam van de oorspronkelijke agentgroep. |
INITIAL_AGENT_POOL_COUNT | Het aantal knooppunten in de eerste agentgroep. |
INITIAL_AGENT_POOL_VM_SIZE | De grootte van de virtuele machine voor de eerste agentpool. |
POD_CIDR | Het netwerkbereik voor de Kubernetes-pods in het cluster, in CIDR-notatie. |
SERVICE_CIDR | Het netwerkbereik voor de Kubernetes-services in het cluster, in CIDR-notatie. |
DNS_SERVICE_IP | Het IP-adres voor de Kubernetes DNS-service. |
Nadat u deze variabelen hebt gedefinieerd, kunt u de Azure CLI-opdracht uitvoeren om het cluster te maken. Voeg de --debug
vlag aan het einde toe om gedetailleerdere uitvoer te bieden voor probleemoplossingsdoeleinden.
Als u deze variabelen wilt definiëren, gebruikt u de volgende setopdrachten en vervangt u de voorbeeldwaarden door uw voorkeurswaarden. U kunt ook de standaardwaarden voor sommige variabelen gebruiken, zoals wordt weergegeven in het volgende voorbeeld:
RESOURCE_GROUP="myResourceGroup"
SUBSCRIPTION_ID="<Azure subscription ID>"
LOCATION="$(az group show --name $RESOURCE_GROUP --query location --subscription $SUBSCRIPTION_ID -o tsv)"
CUSTOM_LOCATION="/subscriptions/<subscription_id>/resourceGroups/<managed_resource_group>/providers/microsoft.extendedlocation/customlocations/<custom-location-name>"
CSN_ARM_ID="/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/cloudServicesNetworks/<csn-name>"
CNI_ARM_ID="/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/l3Networks/<l3Network-name>"
AAD_ADMIN_GROUP_OBJECT_ID="00000000-0000-0000-0000-000000000000"
CLUSTER_NAME="myNexusK8sCluster"
K8S_VERSION="v1.24.9"
ADMIN_USERNAME="azureuser"
SSH_PUBLIC_KEY="$(cat ~/.ssh/id_rsa.pub)"
CONTROL_PLANE_SSH_PUBLIC_KEY="$(cat ~/.ssh/id_rsa.pub)"
AGENT_POOL_SSH_PUBLIC_KEY="$(cat ~/.ssh/id_rsa.pub)"
CONTROL_PLANE_COUNT="1"
CONTROL_PLANE_VM_SIZE="NC_G6_28_v1"
INITIAL_AGENT_POOL_NAME="${CLUSTER_NAME}-nodepool-1"
INITIAL_AGENT_POOL_COUNT="1"
INITIAL_AGENT_POOL_VM_SIZE="NC_P10_56_v1"
POD_CIDR="10.244.0.0/16"
SERVICE_CIDR="10.96.0.0/16"
DNS_SERVICE_IP="10.96.0.10"
Belangrijk
Het is essentieel dat u de tijdelijke aanduidingen voor CUSTOM_LOCATION, CSN_ARM_ID, CNI_ARM_ID en AAD_ADMIN_GROUP_OBJECT_ID vervangt door uw werkelijke waarden voordat u deze opdrachten uitvoert.
Nadat u deze variabelen hebt gedefinieerd, kunt u het Kubernetes-cluster maken door de volgende Azure CLI-opdracht uit te voeren:
az networkcloud kubernetescluster create \
--name "${CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--subscription "${SUBSCRIPTION_ID}" \
--extended-location name="${CUSTOM_LOCATION}" type=CustomLocation \
--location "${LOCATION}" \
--kubernetes-version "${K8S_VERSION}" \
--aad-configuration admin-group-object-ids="[${AAD_ADMIN_GROUP_OBJECT_ID}]" \
--admin-username "${ADMIN_USERNAME}" \
--ssh-key-values "${SSH_PUBLIC_KEY}" \
--control-plane-node-configuration \
count="${CONTROL_PLANE_COUNT}" \
vm-sku-name="${CONTROL_PLANE_VM_SIZE}" \
ssh-key-values='["${CONTROL_PLANE_SSH_PUBLIC_KEY}"]' \
--initial-agent-pool-configurations "[{count:${INITIAL_AGENT_POOL_COUNT},mode:System,name:${INITIAL_AGENT_POOL_NAME},vm-sku-name:${INITIAL_AGENT_POOL_VM_SIZE},ssh-key-values:['${AGENT_POOL_SSH_PUBLIC_KEY}']}]" \
--network-configuration \
cloud-services-network-id="${CSN_ARM_ID}" \
cni-network-id="${CNI_ARM_ID}" \
pod-cidrs="[${POD_CIDR}]" \
service-cidrs="[${SERVICE_CIDR}]" \
dns-service-ip="${DNS_SERVICE_IP}"
Als er onvoldoende capaciteit is om aangevraagde clusterknooppunten te implementeren, wordt er een foutbericht weergegeven. Dit bericht bevat echter geen details over de beschikbare capaciteit. Het geeft aan dat het maken van het cluster niet kan worden voortgezet vanwege onvoldoende capaciteit.
Notitie
Bij de capaciteitsberekening wordt rekening gehouden met het hele platformcluster in plaats van te worden beperkt tot afzonderlijke racks. Als er daarom een agentgroep wordt gemaakt in een zone (waarbij een rek gelijk is aan een zone) met onvoldoende capaciteit, maar een andere zone voldoende capaciteit heeft, gaat het maken van het cluster verder, maar treedt er uiteindelijk een time-out op. Deze benadering van capaciteitscontrole is alleen zinvol als er geen specifieke zone wordt opgegeven tijdens het maken van het cluster of de agentgroep.
Na enkele minuten is de opdracht voltooid en retourneert deze informatie over het cluster. Zie quickstart: Een Azure Nexus Kubernetes-cluster implementeren met Bicep voor meer geavanceerde opties.
Geïmplementeerde resources bekijken
Nadat de implementatie is voltooid, kunt u de resources weergeven met behulp van de CLI of Azure Portal.
Als u de details van het myNexusK8sCluster
cluster in de myResourceGroup
resourcegroep wilt weergeven, voert u de volgende Azure CLI-opdracht uit:
az networkcloud kubernetescluster show \
--name myNexusK8sCluster \
--resource-group myResourceGroup
Als u bovendien een lijst met namen van agentgroepen wilt ophalen die zijn gekoppeld aan het myNexusK8sCluster
cluster in de myResourceGroup
resourcegroep, kunt u de volgende Azure CLI-opdracht gebruiken.
az networkcloud kubernetescluster agentpool list \
--kubernetes-cluster-name myNexusK8sCluster \
--resource-group myResourceGroup \
--output table
Verbinding maken met het cluster
Nu het Nexus Kubernetes-cluster is gemaakt en verbonden met Azure Arc, kunt u er eenvoudig verbinding mee maken met behulp van de functie clusterverbinding. Met clusterverbinding kunt u uw cluster veilig openen en beheren vanaf elke locatie, waardoor het handig is voor interactieve ontwikkeling, foutopsporing en clusterbeheertaken.
Zie Verbinding maken met een Azure Operator Nexus Kubernetes-cluster voor meer informatie over beschikbare opties.
Notitie
Wanneer u een Nexus Kubernetes-cluster maakt, maakt Nexus automatisch een beheerde resourcegroep die is toegewezen aan het opslaan van de clusterresources, binnen deze groep, wordt de met Arc verbonden clusterresource tot stand gebracht.
Voor toegang tot uw cluster moet u de clusterverbinding kubeconfig
instellen. Nadat u zich hebt aangemeld bij Azure CLI met de relevante Microsoft Entra-entiteit, kunt u de kubeconfig
benodigde gegevens verkrijgen om te communiceren met het cluster vanaf elke locatie, zelfs buiten de firewall eromheen.
Stel
CLUSTER_NAME
enRESOURCE_GROUP
SUBSCRIPTION_ID
variabelen in.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>
Query's uitvoeren op beheerde resourcegroep met
az
en opslaan inMANAGED_RESOURCE_GROUP
az account set -s $SUBSCRIPTION_ID MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)
Met de volgende opdracht wordt een connectedk8s-proxy gestart waarmee u verbinding kunt maken met de Kubernetes-API-server voor het opgegeven Nexus Kubernetes-cluster.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &
Gebruik
kubectl
dit om aanvragen naar het cluster te verzenden:kubectl get pods -A
U ziet nu een antwoord van het cluster met de lijst met alle knooppunten.
Notitie
Als u het foutbericht 'Kan geen toegangstoken posten naar clientproxyFailed om verbinding te maken met MSI' wordt weergegeven, moet u mogelijk een az login
nieuwe verificatie uitvoeren bij Azure.
Een agentgroep toevoegen
Het cluster dat in de vorige stap is gemaakt, heeft één knooppuntgroep. We gaan een tweede agentpool toevoegen met behulp van de az networkcloud kubernetescluster agentpool create
opdracht. In het volgende voorbeeld wordt een agentpool met de naam myNexusK8sCluster-nodepool-2
gemaakt:
U kunt ook de standaardwaarden voor sommige variabelen gebruiken, zoals wordt weergegeven in het volgende voorbeeld:
RESOURCE_GROUP="myResourceGroup"
CUSTOM_LOCATION="/subscriptions/<subscription_id>/resourceGroups/<managed_resource_group>/providers/microsoft.extendedlocation/customlocations/<custom-location-name>"
CLUSTER_NAME="myNexusK8sCluster"
AGENT_POOL_NAME="${CLUSTER_NAME}-nodepool-2"
AGENT_POOL_VM_SIZE="NC_P10_56_v1"
AGENT_POOL_COUNT="1"
AGENT_POOL_MODE="User"
Nadat u deze variabelen hebt gedefinieerd, kunt u een agentpool toevoegen door de volgende Azure CLI-opdracht uit te voeren:
az networkcloud kubernetescluster agentpool create \
--name "${AGENT_POOL_NAME}" \
--kubernetes-cluster-name "${CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--subscription "${SUBSCRIPTION_ID}" \
--extended-location name="${CUSTOM_LOCATION}" type=CustomLocation \
--count "${AGENT_POOL_COUNT}" \
--mode "${AGENT_POOL_MODE}" \
--vm-sku-name "${AGENT_POOL_VM_SIZE}"
Na enkele minuten wordt de opdracht voltooid en wordt informatie over de agentgroep geretourneerd. Zie quickstart: Een Azure Nexus Kubernetes-cluster implementeren met Bicep voor meer geavanceerde opties.
Notitie
U kunt meerdere agentpools toevoegen tijdens het eerste maken van uw cluster zelf met behulp van de configuraties van de initiële agentgroep. Als u na het maken echter agentgroepen wilt toevoegen, kunt u de bovenstaande opdracht gebruiken om extra agentpools te maken voor uw Nexus Kubernetes-cluster.
Het volgende uitvoervoorbeeld lijkt op een geslaagde creatie van de agentgroep.
$ az networkcloud kubernetescluster agentpool list --kubernetes-cluster-name myNexusK8sCluster --resource-group myResourceGroup --output table
This command is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Count Location Mode Name ProvisioningState ResourceGroup VmSkuName
------- ---------- ------ ---------------------------- ------------------- --------------- -----------
1 eastus System myNexusK8sCluster-nodepool-1 Succeeded myResourceGroup NC_P10_56_v1
1 eastus User myNexusK8sCluster-nodepool-2 Succeeded myResourceGroup NC_P10_56_v1
Resources opschonen
Verwijder de resourcegroep als u deze niet meer nodig hebt. De resourcegroep en alle resources in de resourcegroep worden verwijderd.
Gebruik de opdracht az group delete om de resourcegroep, het Kubernetes-cluster en alle gerelateerde resources te verwijderen, met uitzondering van de Operator Nexus-netwerkresources.
az group delete --name myResourceGroup --yes --no-wait
Volgende stappen
U kunt de CFS nu rechtstreeks implementeren via een clusterverbinding of via Azure Operator Service Manager.