Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
- Stellen Sie einen Azure Nexus Kubernetes-Cluster mit Azure CLI bereit.
Bevor Sie anfangen
Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter "Erste Schritte mit Azure Cloud Shell".
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen möchten, installieren Sie die Azure CLI. Wenn Sie mit Windows oder macOS arbeiten, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Um den Authentifizierungsprozess abzuschließen, führen Sie die schritte aus, die in Ihrem Terminal angezeigt werden. Weitere Anmeldeoptionen finden Sie unter Authentifizieren bei Azure mithilfe der Azure CLI.
Wenn Sie dazu aufgefordert werden, installieren Sie die Azure CLI-Erweiterung bei der ersten Verwendung. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden und Verwalten von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um auf die neueste Version zu aktualisieren.
Installieren Sie die neueste Version der erforderlichen Azure CLI-Erweiterungen.
Dieser Artikel erfordert Version 2.61.0 oder höher der Azure CLI. Wenn Sie Azure Cloud Shell verwenden, ist die neueste Version bereits installiert.
Wenn Sie über mehrere Azure-Abonnements verfügen, wählen Sie die entsprechende Abonnement-ID aus, in der die Ressourcen mit dem
az accountBefehl in Rechnung gestellt werden sollen.Die VM-SKU-Tabelle finden Sie im Referenzabschnitt für die Liste der unterstützten VM-SKUs.
Die unterstützten Kubernetes-Versionen finden Sie in der Liste der unterstützten Kubernetes-Versionen.
Erstellen Sie eine Ressourcengruppe mit dem Befehl
az group create. Eine Azure-Ressourcengruppe ist eine logische Gruppe, in der Azure-Ressourcen bereitgestellt und verwaltet werden. Wenn Sie eine Ressourcengruppe erstellen, werden Sie zur Angabe eines Speicherorts aufgefordert. An diesem Speicherort werden die Metadaten Ihrer Ressourcengruppe gespeichert. Darüber hinaus werden dort die Ressourcen in Azure ausgeführt, wenn Sie während der Ressourcenerstellung keine andere Region angeben. Das folgende Beispiel erstellt eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus.az group create --name myResourceGroup --location eastusDas folgende Ausgabebeispiel ähnelt der erfolgreichen Erstellung der Ressourcengruppe:
{ "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup", "location": "eastus", "managedBy": null, "name": "myResourceGroup", "properties": { "provisioningState": "Succeeded" }, "tags": null }Zum Bereitstellen einer Bicep-Datei oder ARM-Vorlage benötigen Sie Schreibzugriff auf die Ressourcen, die Sie bereitstellen, und Zugriff auf alle Vorgänge für den Ressourcentyp Microsoft.Resources/deployments. Um beispielsweise einen Cluster bereitzustellen, benötigen Sie Microsoft.NetworkCloud/kubernetesclusters/write und Microsoft.Resources/deployments/* Berechtigungen. Eine Liste der Rollen und Berechtigungen finden Sie in den integrierten Azure-Rollen.
Sie benötigen die
custom locationRessourcen-ID Ihres Azure Operator Nexus-Clusters.Sie müssen verschiedene Netzwerke entsprechend Ihren spezifischen Workloadanforderungen erstellen, und es ist wichtig, dass die entsprechenden IP-Adressen für Ihre Workloads verfügbar sind. Um eine reibungslose Implementierung sicherzustellen, empfiehlt es sich, die entsprechenden Supportteams zur Unterstützung zu konsultieren.
Für diese Schnellstartanleitung werden Grundkenntnisse in Bezug auf die Kubernetes-Konzepte vorausgesetzt. Weitere Informationen finden Sie unter Kubernetes-Kernkonzepte für Azure Kubernetes Service (AKS).
Erstellen eines Azure Nexus Kubernetes-Clusters
Im folgenden Beispiel wird ein Cluster namens "myNexusK8sCluster" in der Ressourcengruppe "myResourceGroup " am Eastus-Speicherort erstellt.
Bevor Sie die Befehle ausführen, müssen Sie mehrere Variablen festlegen, um die Konfiguration für Ihren Cluster zu definieren. Hier sind die Variablen, die Sie festlegen müssen, zusammen mit einigen Standardwerten, die Sie für bestimmte Variablen verwenden können:
| Variable | Description |
|---|---|
| LAGERPLATZ | Die Azure-Region, in der Sie Ihren Cluster erstellen möchten. |
| Ressourcengruppe | Der Name der Azure-Ressourcengruppe, in der Sie den Cluster erstellen möchten. |
| SUBSCRIPTION_ID | Die ID Ihres Azure-Abonnements. |
| CUSTOM_LOCATION | Dieses Argument gibt eine benutzerdefinierte Position der Nexus-Instanz an. |
| CSN_ARM_ID | CSN-ID ist der eindeutige Bezeichner für das Clouddienstenetzwerk, das Sie verwenden möchten. |
| CNI_ARM_ID | CNI-ID ist der eindeutige Bezeichner für die Netzwerkschnittstelle, die von der Containerlaufzeit verwendet werden soll. |
| AAD_ADMIN_GROUP_OBJECT_ID | Die Objekt-ID der Microsoft Entra-Gruppe, die Über Administratorrechte für den Cluster verfügen soll. |
| CLUSTER_NAME | Der Name, den Sie Ihrem Nexus Kubernetes-Cluster geben möchten. |
| K8S_VERSION | Die Version von Kubernetes, die Sie verwenden möchten. |
| ADMIN_BENUTZERNAME | Der Benutzername für den Clusteradministrator. |
| SSH_PUBLIC_KEY | Der öffentliche SSH-Schlüssel, der für die sichere Kommunikation mit dem Cluster verwendet wird. |
| CONTROL_PLANE_COUNT | Die Anzahl der Steuerebenenknoten für den Cluster. |
| CONTROL_PLANE_VM_SIZE | Die Größe des virtuellen Computers für die Steuerebenenknoten. |
| ANFÄNGLICHER_AGENTENPOOL_NAME | Der Name des anfänglichen Agentpools. |
| INITIAL_AGENT_POOL_COUNT | Die Anzahl der Knoten im anfänglichen Agentpool. |
| INITIAL_AGENT_POOL_VM_SIZE | Die Größe des virtuellen Computers für den anfänglichen Agentpool. |
| POD_CIDR | Der Netzwerkbereich für die Kubernetes-Pods im Cluster, in CIDR-Notation. |
| SERVICE_CIDR | Der Netzwerkbereich für die Kubernetes-Dienste im Cluster, in CIDR-Notation. |
| DNS_SERVICE_IP | Die IP-Adresse für den Kubernetes-DNS-Dienst. |
Nachdem Sie diese Variablen definiert haben, können Sie den Azure CLI-Befehl ausführen, um den Cluster zu erstellen. Fügen Sie das --debug Kennzeichen am Ende hinzu, um eine detailliertere Ausgabe für Problembehandlungszwecke bereitzustellen.
Verwenden Sie zum Definieren dieser Variablen die folgenden Satzbefehle, und ersetzen Sie die Beispielwerte durch Ihre bevorzugten Werte. Sie können auch die Standardwerte für einige der Variablen verwenden, wie im folgenden Beispiel gezeigt:
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"
Von Bedeutung
Es ist wichtig, dass Sie die Platzhalter für CUSTOM_LOCATION, CSN_ARM_ID, CNI_ARM_ID und AAD_ADMIN_GROUP_OBJECT_ID durch Ihre tatsächlichen Werte ersetzen, bevor Sie diese Befehle ausführen.
Nachdem Sie diese Variablen definiert haben, können Sie den Kubernetes-Cluster erstellen, indem Sie den folgenden Azure CLI-Befehl ausführen:
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}"
Wenn nicht genügend Kapazität zum Bereitstellen angeforderter Clusterknoten vorhanden ist, wird eine Fehlermeldung angezeigt. Diese Meldung enthält jedoch keine Details zur verfügbaren Kapazität. Es gibt an, dass die Clustererstellung aufgrund unzureichender Kapazität nicht fortgesetzt werden kann.
Hinweis
Bei der Kapazitätsberechnung wird der gesamte Plattformcluster berücksichtigt, anstatt auf einzelne Racks beschränkt zu sein. Wenn also ein Agentpool in einer Zone (in der ein Rack einer Zone entspricht) mit unzureichender Kapazität erstellt wird, aber eine andere Zone über genügend Kapazität verfügt, wird die Clustererstellung fortgesetzt, wird aber letztendlich ein Timeout ausgeführt. Dieser Ansatz zur Kapazitätsüberprüfung ist nur sinnvoll, wenn während der Erstellung des Cluster- oder Agentpools keine bestimmte Zone angegeben wird.
Nach ein paar Minuten wird der Befehl abgeschlossen und gibt Informationen zum Cluster zurück. Weitere erweiterte Optionen finden Sie in der Schnellstartanleitung: Bereitstellen eines Azure Nexus Kubernetes-Clusters mit Bicep.
Überprüfen der bereitgestellten Ressourcen
Nach Abschluss der Bereitstellung können Sie die Ressourcen mithilfe der CLI oder des Azure-Portals anzeigen.
Führen Sie den folgenden Azure CLI-Befehl aus, um die Details des myNexusK8sCluster Clusters in der myResourceGroup Ressourcengruppe anzuzeigen:
az networkcloud kubernetescluster show \
--name myNexusK8sCluster \
--resource-group myResourceGroup
Um eine Liste der Agentpoolnamen abzurufen, die dem myNexusK8sCluster Cluster in der myResourceGroup Ressourcengruppe zugeordnet sind, können Sie außerdem den folgenden Azure CLI-Befehl verwenden.
az networkcloud kubernetescluster agentpool list \
--kubernetes-cluster-name myNexusK8sCluster \
--resource-group myResourceGroup \
--output table
Herstellen einer Verbindung mit dem Cluster
Nachdem der Nexus Kubernetes-Cluster erfolgreich erstellt und mit Azure Arc verbunden wurde, können Sie mit der Clusterverbindungsfunktion problemlos eine Verbindung damit herstellen. Mithilfe von Clusterverbindungen können Sie von nahezu überall auf Ihren Cluster zugreifen und diesen verwalten, was ideal für interaktive Entwicklungs-, Debugging- und Clusterverwaltungsaufgaben ist.
Ausführlichere Informationen zu verfügbaren Optionen finden Sie unter Herstellen einer Verbindung mit einem Azure Operator Nexus Kubernetes-Cluster.
Hinweis
Wenn Sie einen Nexus Kubernetes-Cluster erstellen, erstellt Nexus automatisch eine verwaltete Ressourcengruppe, die zum Speichern der Clusterressourcen in dieser Gruppe dient, wird die mit Arc verbundene Clusterressource eingerichtet.
Um auf Ihren Cluster zuzugreifen, müssen Sie die Clusterverbindung kubeconfigeinrichten. Nachdem Sie sich bei Azure CLI mit der relevanten Microsoft Entra-Entität angemeldet haben, können Sie die kubeconfig erforderliche Kommunikation mit dem Cluster von praktisch überall aus abrufen, auch außerhalb der Firewall, die sie umgibt.
Legen Sie die Variablen
CLUSTER_NAME,RESOURCE_GROUPundSUBSCRIPTION_IDfest.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>Abfrage verwalteter Ressourcengruppe mit
azund Speichern inMANAGED_RESOURCE_GROUPaz account set -s $SUBSCRIPTION_ID MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)Der folgende Befehl startet einen connectedk8s-Proxy, mit dem Sie eine Verbindung mit dem Kubernetes-API-Server für den angegebenen Nexus Kubernetes-Cluster herstellen können.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &Wird
kubectlverwendet, um Anforderungen an den Cluster zu senden:kubectl get pods -ANun sollte eine Antwort des Clusters mit der Liste aller Knoten angezeigt werden.
Hinweis
Wenn die Fehlermeldung "Fehler beim Bereitstellen des Zugriffstokens an den Client-Proxy. Verbindung mit MSI konnte nicht hergestellt werden" angezeigt wird, müssen Sie sich möglicherweise bei Azure neu authentifizieren.
Hinzufügen eines Agentpools
Der im vorherigen Schritt erstellte Cluster verfügt über einen einzelnen Knotenpool. Fügen wir nun einen zweiten Agentpool mithilfe des az networkcloud kubernetescluster agentpool create Befehls hinzu. Im folgenden Beispiel wird ein Agentpool mit dem Namen myNexusK8sCluster-nodepool-2erstellt:
Sie können auch die Standardwerte für einige der Variablen verwenden, wie im folgenden Beispiel gezeigt:
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"
Nachdem Sie diese Variablen definiert haben, können Sie einen Agentpool hinzufügen, indem Sie den folgenden Azure CLI-Befehl ausführen:
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}"
Nach ein paar Minuten wird der Befehl abgeschlossen und gibt Informationen zum Agentpool zurück. Weitere erweiterte Optionen finden Sie in der Schnellstartanleitung: Bereitstellen eines Azure Nexus Kubernetes-Clusters mit Bicep.
Hinweis
Sie können während der ersten Erstellung Ihres Clusters mehrere Agentpools selbst hinzufügen, indem Sie die anfänglichen Agentpoolkonfigurationen verwenden. Wenn Sie jedoch Agentpools nach der ersten Erstellung hinzufügen möchten, können Sie den obigen Befehl verwenden, um zusätzliche Agentpools für Ihren Nexus Kubernetes-Cluster zu erstellen.
Das folgende Ausgabebeispiel ähnelt der erfolgreichen Erstellung des Agentpools.
$ 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
Bereinigen von Ressourcen
Wenn sie nicht mehr benötigt wird, löschen Sie die Ressourcengruppe. Die Ressourcengruppe und alle Ressourcen in der Ressourcengruppe werden gelöscht.
Verwenden Sie den Befehl " az group delete ", um die Ressourcengruppe, den Kubernetes-Cluster und alle zugehörigen Ressourcen außer den Operator Nexus-Netzwerkressourcen zu entfernen.
az group delete --name myResourceGroup --yes --no-wait
Nächste Schritte
Sie können die CNFs jetzt entweder direkt über cluster connect oder über Azure Operator Service Manager bereitstellen.