Rychlý start: Vytvoření clusteru Azure Nexus Kubernetes pomocí Azure CLI
- Nasazení clusteru Kubernetes Azure Nexus pomocí Azure CLI
Než začnete
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Nainstalujte nejnovější verzi potřebných rozšíření Azure CLI.
Tento článek vyžaduje verzi 2.61.0 nebo novější azure CLI. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.
Pokud máte více předplatných Azure, vyberte příslušné ID předplatného, ve kterém se mají prostředky fakturovat pomocí
az account
příkazu.Seznam podporovaných skladových položek virtuálních počítačů najdete v tabulce skladových položek virtuálního počítače v referenční části .
Seznam podporovaných verzí Kubernetes najdete v podporovaných verzích Kubernetes.
Pomocí příkazu vytvořte skupinu
az group create
prostředků. Skupina prostředků Azure je logická skupina, ve které se nasazují a spravují prostředky Azure. Při vytváření skupiny prostředků se zobrazí výzva k zadání umístění. Toto umístění je umístění úložiště metadat vaší skupiny prostředků a místo, kde vaše prostředky běží v Azure, pokud během vytváření prostředků nezadáte jinou oblast. Následující příklad vytvoří skupinu prostředků myResourceGroup v umístění eastus.az group create --name myResourceGroup --location eastus
Následující příklad výstupu se podobá úspěšnému vytvoření skupiny prostředků:
{ "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup", "location": "eastus", "managedBy": null, "name": "myResourceGroup", "properties": { "provisioningState": "Succeeded" }, "tags": null }
Pokud chcete nasadit soubor Bicep nebo šablonu ARM, musíte mít přístup k zápisu pro prostředky, které nasazujete, a přístup ke všem operacím s prostředky typu Microsoft.Resources/deployments. Například k nasazení clusteru potřebujete oprávnění Microsoft.NetworkCloud/kubernetesclusters/write a Microsoft.Resources/deployments/*. Seznam rolí a oprávnění najdete v tématu Předdefinované role Azure.
Potřebujete
custom location
ID prostředku clusteru Azure Operator Nexus.Potřebujete vytvořit různé sítě podle vašich konkrétních požadavků na úlohy a je nezbytné mít pro své úlohy k dispozici příslušné IP adresy. Pokud chcete zajistit bezproblémovou implementaci, doporučujeme se obrátit na příslušné týmy podpory a požádat o pomoc.
Tento rychlý start předpokládá základní znalosti konceptů Kubernetes. Další informace najdete v tématu Základní koncepty Kubernetes pro Službu Azure Kubernetes Service (AKS).
Vytvoření clusteru Azure Nexus Kubernetes
Následující příklad vytvoří cluster s názvem myNexusK8sCluster ve skupině prostředků myResourceGroup v umístění eastus.
Před spuštěním příkazů je potřeba nastavit několik proměnných, abyste definovali konfiguraci clusteru. Tady jsou proměnné, které potřebujete nastavit, spolu s některými výchozími hodnotami, které můžete použít pro určité proměnné:
Proměnná | Popis |
---|---|
UMÍSTĚNÍ | Oblast Azure, ve které chcete cluster vytvořit. |
RESOURCE_GROUP | Název skupiny prostředků Azure, ve které chcete cluster vytvořit. |
SUBSCRIPTION_ID | ID vašeho předplatného Azure. |
CUSTOM_LOCATION | Tento argument určuje vlastní umístění instance Nexus. |
CSN_ARM_ID | ID CSN je jedinečný identifikátor sítě cloudových služeb, kterou chcete použít. |
CNI_ARM_ID | ID CNI je jedinečný identifikátor síťového rozhraní, které má modul runtime kontejneru používat. |
AAD_ADMIN_GROUP_OBJECT_ID | ID objektu skupiny Microsoft Entra, která by měla mít oprávnění správce v clusteru. |
CLUSTER_NAME | Název, který chcete předat clusteru Nexus Kubernetes. |
K8S_VERSION | Verze Kubernetes, kterou chcete použít. |
ADMIN_USERNAME | Uživatelské jméno správce clusteru. |
SSH_PUBLIC_KEY | Veřejný klíč SSH, který se používá pro zabezpečenou komunikaci s clusterem. |
CONTROL_PLANE_COUNT | Počet uzlů řídicí roviny clusteru. |
CONTROL_PLANE_VM_SIZE | Velikost virtuálního počítače pro uzly řídicí roviny. |
INITIAL_AGENT_POOL_NAME | Název počátečního fondu agentů. |
INITIAL_AGENT_POOL_COUNT | Počet uzlů v počátečním fondu agentů. |
INITIAL_AGENT_POOL_VM_SIZE | Velikost virtuálního počítače pro počáteční fond agentů. |
POD_CIDR | Rozsah sítě pro pody Kubernetes v clusteru v zápisu CIDR. |
SERVICE_CIDR | Rozsah sítě pro služby Kubernetes v clusteru v zápisu CIDR. |
DNS_SERVICE_IP | IP adresa pro službu DNS Kubernetes. |
Po definování těchto proměnných můžete spuštěním příkazu Azure CLI vytvořit cluster. --debug
Přidejte na konec příznak, který poskytuje podrobnější výstup pro účely řešení potíží.
K definování těchto proměnných použijte následující příkazy sady a nahraďte ukázkové hodnoty upřednostňovanými hodnotami. Můžete také použít výchozí hodnoty některých proměnných, jak je znázorněno v následujícím příkladu:
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"
Důležité
Před spuštěním těchto příkazů je důležité nahradit zástupné symboly pro CUSTOM_LOCATION, CSN_ARM_ID, CNI_ARM_ID a AAD_ADMIN_GROUP_OBJECT_ID skutečnými hodnotami.
Po definování těchto proměnných můžete cluster Kubernetes vytvořit spuštěním následujícího příkazu Azure CLI:
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}"
Pokud není dostatek kapacity pro nasazení požadovaných uzlů clusteru, zobrazí se chybová zpráva. Tato zpráva ale neobsahuje žádné podrobnosti o dostupné kapacitě. Uvádí, že vytvoření clusteru nemůže pokračovat kvůli nedostatečné kapacitě.
Poznámka:
Výpočet kapacity bere v úvahu celý cluster platformy, nikoli pouze na jednotlivé racky. Proto pokud je fond agentů vytvořen v zóně (kde se rack rovná zóně) s dostatečnou kapacitou, ale jiná zóna má dostatečnou kapacitu, vytváření clusteru bude pokračovat, ale nakonec vyprší časový limit. Tento přístup ke kontrole kapacity dává smysl pouze v případě, že při vytváření clusteru nebo fondu agentů není zadaná konkrétní zóna.
Po několika minutách se příkaz dokončí a vrátí informace o clusteru. Pokročilejší možnosti najdete v tématu Rychlý start: Nasazení clusteru Kubernetes Azure Nexus pomocí Bicep.
Kontrola nasazených prostředků
Po dokončení nasazení můžete prostředky zobrazit pomocí rozhraní příkazového řádku nebo webu Azure Portal.
Pokud chcete zobrazit podrobnosti clusteru myNexusK8sCluster
ve myResourceGroup
skupině prostředků, spusťte následující příkaz Azure CLI:
az networkcloud kubernetescluster show \
--name myNexusK8sCluster \
--resource-group myResourceGroup
Pokud chcete získat seznam názvů fondů agentů přidružených ke clusteru myNexusK8sCluster
ve myResourceGroup
skupině prostředků, můžete použít následující příkaz Azure CLI.
az networkcloud kubernetescluster agentpool list \
--kubernetes-cluster-name myNexusK8sCluster \
--resource-group myResourceGroup \
--output table
Připojení ke clusteru
Teď, když se cluster Nexus Kubernetes úspěšně vytvořil a připojil ke službě Azure Arc, se k němu můžete snadno připojit pomocí funkce připojení clusteru. Připojení ke clusteru umožňuje bezpečně přistupovat ke clusteru a spravovat ho odkudkoli, což usnadňuje interaktivní vývoj, ladění a úlohy správy clusteru.
Podrobnější informace o dostupných možnostech najdete v tématu Připojení ke clusteru Kubernetes operátora Azure Nexus.
Poznámka:
Při vytváření clusteru Nexus Kubernetes vytvoří Nexus automaticky spravovanou skupinu prostředků vyhrazenou k ukládání prostředků clusteru v rámci této skupiny, vytvoří se prostředek clusteru připojeného ke službě Arc.
Pokud chcete získat přístup ke clusteru, musíte nastavit připojení kubeconfig
clusteru . Po přihlášení k Azure CLI s příslušnou entitou Microsoft Entra můžete získat kubeconfig
potřebnou komunikaci s clusterem odkudkoli, i mimo bránu firewall, která ji obklopuje.
RESOURCE_GROUP
NastavteCLUSTER_NAME
aSUBSCRIPTION_ID
proměnné.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>
Dotazování spravované skupiny prostředků pomocí
az
a uložení doMANAGED_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)
Následující příkaz spustí proxy server connectedk8s, který umožňuje připojit se k serveru rozhraní API Kubernetes pro zadaný cluster Nexus Kubernetes.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &
Slouží
kubectl
k odesílání požadavků do clusteru:kubectl get pods -A
Teď by se měla zobrazit odpověď z clusteru obsahujícího seznam všech uzlů.
Poznámka:
Pokud se zobrazí chybová zpráva "Nepodařilo se odeslat přístupový token do klientského proxy serveru se nepovedlo připojit k MSI", možná budete muset provést az login
opětovné ověření v Azure.
Přidání fondu agentů
Cluster vytvořený v předchozím kroku má jeden fond uzlů. Pomocí příkazu přidáme druhý fond az networkcloud kubernetescluster agentpool create
agentů. Následující příklad vytvoří fond agentů s názvem myNexusK8sCluster-nodepool-2
:
Můžete také použít výchozí hodnoty některých proměnných, jak je znázorněno v následujícím příkladu:
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"
Po definování těchto proměnných můžete přidat fond agentů spuštěním následujícího příkazu Azure CLI:
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}"
Po několika minutách se příkaz dokončí a vrátí informace o fondu agentů. Pokročilejší možnosti najdete v tématu Rychlý start: Nasazení clusteru Kubernetes Azure Nexus pomocí Bicep.
Poznámka:
Během počátečního vytváření samotného clusteru můžete přidat více fondů agentů pomocí počátečních konfigurací fondu agentů. Pokud ale chcete přidat fondy agentů po počátečním vytvoření, můžete použít výše uvedený příkaz k vytvoření dalších fondů agentů pro váš cluster Nexus Kubernetes.
Následující příklad výstupu se podobá úspěšnému vytvoření fondu agentů.
$ 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
Vyčištění prostředků
Odstraňte skupinu prostředků, pokud ji už nepotřebujete. Skupina prostředků a všechny prostředky ve skupině prostředků se odstraní.
Pomocí příkazu az group delete odeberte skupinu prostředků, cluster Kubernetes a všechny související prostředky kromě síťových prostředků Operator Nexus.
az group delete --name myResourceGroup --yes --no-wait
Další kroky
Soubory CNF teď můžete nasadit buď přímo prostřednictvím připojení clusteru, nebo prostřednictvím Service Manageru operátora Azure.