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.

  • Nainstalujte nejnovější verzi potřebných rozšíření Azure CLI.

  • Tento článek vyžaduje verzi 2.49.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_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}" \
  --initial-agent-pool-configurations "[{count:${INITIAL_AGENT_POOL_COUNT},mode:System,name:${INITIAL_AGENT_POOL_NAME},vm-sku-name:${INITIAL_AGENT_POOL_VM_SIZE}}]" \
  --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í kubeconfigclusteru . 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.

  1. RESOURCE_GROUP Nastavte CLUSTER_NAMEa SUBSCRIPTION_ID proměnné.

    CLUSTER_NAME="myNexusK8sCluster"
    RESOURCE_GROUP="myResourceGroup"
    SUBSCRIPTION_ID=<set the correct subscription_id>
    
  2. Dotazování spravované skupiny prostředků pomocí az a uložení do 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. 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 &
    
  4. 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.