Rychlý start: Vytvoření clusteru Azure Nexus Kubernetes pomocí Azure CLI

  • Nasazení clusteru Kubernetes Azure Nexus pomocí Azure CLI

Než začnete

Pokud nemáte účet Azure, vytvořte si bezplatný účet 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.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 .

  • Vytvořte skupinu prostředků pomocí příkazu az group create. 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ů s názvem myResourceGroup v lokaci 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 právo zápisu pro prostředky, které nasazujete, a přístup ke všem operacím na prostředku 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 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é:

Variable Description
UMÍSTĚNÍ Oblast Azure, ve které chcete cluster vytvořit.
Skupina zdrojů Název skupiny prostředků Azure, ve které chcete cluster vytvořit.
PŘEDPLATNÉ_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.
IDENTIFIKÁTOR_OBJEKTU_SKUPINY_SPRÁVCE_AAD ID objektu skupiny Microsoft Entra, která by měla mít oprávnění správce v clusteru.
NÁZEV_CLUSTERU Název, který chcete předat clusteru Nexus Kubernetes.
K8S_VERSION Verze Kubernetes, kterou chcete použít.
ADMIN_UŽIVATELSKÉ_JMÉNO 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.
POČÁTEČNÍ_NÁZEV_FONDU_AGENTŮ Název počátečního fondu agentů.
INITIAL_AGENT_POOL_COUNT Počet nodů v počátečním agentovém fondu.
INITIAL_AGENT_POOL_VM_SIZE (Počáteční velikost VM fondu agentů) 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 místo toho, aby se omezil pouze na jednotlivé racky. Proto pokud je fond agentů vytvořen v zóně (kde se rack rovná zóně) s nedostatečnou kapacitou, ale jiná zóna má dostatečnou kapacitu, vytváření clusteru bude pokračovat, ale nakonec časový limit vyprší. 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

Navíc, pokud chcete získat seznam názvů fondů agentů, které jsou přidružené ke clusteru myNexusK8sCluster ve skupině prostředků myResourceGroup, 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ů, která je vyhrazená pro ukládání prostředků clusteru. V rámci této skupiny se vytvoří zdroj clusteru připojeného prostřednictvím Arc.

Pokud chcete získat přístup ke clusteru, musíte nastavit připojení ke clusteru kubeconfig. Po přihlášení k Azure CLI s příslušnou entitou Microsoft Entra můžete získat kubeconfig potřebné pro komunikaci s clusterem odkudkoli, i mimo firewall, který ho obklopuje.

  1. Nastavte CLUSTER_NAME, RESOURCE_GROUP a SUBSCRIPTION_ID proměnné.

    CLUSTER_NAME="myNexusK8sCluster"
    RESOURCE_GROUP="myResourceGroup"
    SUBSCRIPTION_ID=<set the correct subscription_id>
    
  2. Dotažte se na spravovanou skupinu prostředků pomocí az a uložte ji 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 serveruNelze se připojit k MSI", možná budete muset provést az login k opětovnému ověření v Azure.

Přidání fondu agentů

Cluster vytvořený v předchozím kroku má jeden pool uzlů. Přidejme druhý fond agentů pomocí příkazu az networkcloud kubernetescluster agentpool create. 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čistěte zdroje

Pokud už skupinu prostředků nepotřebujete, odstraňte ji. 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.