Delen via


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.

  • 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 kubeconfiginstellen. 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.

  1. Stel CLUSTER_NAMEen RESOURCE_GROUP SUBSCRIPTION_ID variabelen in.

    CLUSTER_NAME="myNexusK8sCluster"
    RESOURCE_GROUP="myResourceGroup"
    SUBSCRIPTION_ID=<set the correct subscription_id>
    
  2. Query's uitvoeren op beheerde resourcegroep met az en opslaan in MANAGED_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)
    
  3. 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 &
    
  4. 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-2gemaakt:

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.