Szybki start: tworzenie klastra Kubernetes platformy Azure Nexus przy użyciu interfejsu wiersza polecenia platformy Azure
- Wdrażanie klastra Kubernetes platformy Azure nexus przy użyciu interfejsu wiersza polecenia platformy Azure.
Zanim rozpoczniesz
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
Zainstaluj najnowszą wersję niezbędnych rozszerzeń interfejsu wiersza polecenia platformy Azure.
Ten artykuł wymaga wersji 2.61.0 lub nowszej interfejsu wiersza polecenia platformy Azure. W przypadku korzystania z usługi Azure Cloud Shell najnowsza wersja jest już zainstalowana.
Jeśli masz wiele subskrypcji platformy Azure, wybierz odpowiedni identyfikator subskrypcji, w którym zasoby mają być rozliczane przy użyciu
az account
polecenia .Zapoznaj się z tabelą SKU maszyny wirtualnej w sekcji referencyjnej, aby zapoznać się z listą obsługiwanych jednostek SKU maszyn wirtualnych.
Zapoznaj się z listą obsługiwanych wersji platformy Kubernetes obsługiwanych wersji rozwiązania Kubernetes.
Utwórz grupę zasobów przy użyciu
az group create
polecenia . Grupa zasobów platformy Azure to grupa logiczna, w której zasoby platformy Azure są wdrażane i zarządzane. Podczas tworzenia grupy zasobów zostanie wyświetlony monit o określenie lokalizacji. Ta lokalizacja to lokalizacja magazynu metadanych grupy zasobów i lokalizacja, w której zasoby są uruchamiane na platformie Azure, jeśli nie określisz innego regionu podczas tworzenia zasobów. W poniższym przykładzie tworzona jest grupa zasobów o nazwie myResourceGroup w lokalizacji eastus.az group create --name myResourceGroup --location eastus
Poniższy przykład danych wyjściowych przypomina pomyślne utworzenie grupy zasobów:
{ "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup", "location": "eastus", "managedBy": null, "name": "myResourceGroup", "properties": { "provisioningState": "Succeeded" }, "tags": null }
Aby wdrożyć plik Bicep lub szablon usługi ARM, potrzebujesz dostępu do zapisu w zasobach wdrażanych i dostępu do wszystkich operacji w typie zasobu Microsoft.Resources/deployments. Na przykład do wdrożenia klastra potrzebne są uprawnienia Microsoft.NetworkCloud/kubernetesclusters/write i Microsoft.Resources/deployments/*. Aby uzyskać listę ról i uprawnień, zobacz Role wbudowane platformy Azure.
Potrzebny jest identyfikator zasobu klastra Nexus operatora platformy
custom location
Azure.Musisz utworzyć różne sieci zgodnie z określonymi wymaganiami dotyczącymi obciążenia i niezbędne jest posiadanie odpowiednich adresów IP dostępnych dla obciążeń. Aby zapewnić bezproblemową implementację, zaleca się skonsultowanie się z odpowiednimi zespołami pomocy technicznej w celu uzyskania pomocy.
W tym przewodniku Szybki start założono, że masz podstawową wiedzę na temat pojęć związanych z rozwiązaniem Kubernetes. Aby uzyskać więcej informacji, zobacz temat Kubernetes core concepts for Azure Kubernetes Service (AKS) (Kubernetes — podstawowe pojęcia dotyczące usługi Azure Kubernetes Service (AKS)).
Tworzenie klastra Kubernetes na platformie Azure Nexus
Poniższy przykład tworzy klaster o nazwie myNexusK8sCluster w grupie zasobów myResourceGroup w lokalizacji eastus .
Przed uruchomieniem poleceń należy ustawić kilka zmiennych, aby zdefiniować konfigurację klastra. Poniżej przedstawiono zmienne, które należy ustawić, wraz z niektórymi wartościami domyślnymi, których można użyć dla niektórych zmiennych:
Zmienna | opis |
---|---|
LOKALIZACJA | Region świadczenia usługi Azure, w którym chcesz utworzyć klaster. |
RESOURCE_GROUP | Nazwa grupy zasobów platformy Azure, w której chcesz utworzyć klaster. |
SUBSCRIPTION_ID | Identyfikator subskrypcji platformy Azure. |
CUSTOM_LOCATION | Ten argument określa niestandardową lokalizację wystąpienia Nexus. |
CSN_ARM_ID | Identyfikator CSN to unikatowy identyfikator sieci usług w chmurze, której chcesz użyć. |
CNI_ARM_ID | Identyfikator CNI to unikatowy identyfikator interfejsu sieciowego, który ma być używany przez środowisko uruchomieniowe kontenera. |
AAD_ADMIN_GROUP_OBJECT_ID | Identyfikator obiektu grupy Microsoft Entra, która powinna mieć uprawnienia administratora w klastrze. |
CLUSTER_NAME | Nazwa, którą chcesz nadać klastrowi Nexus Kubernetes. |
K8S_VERSION | Wersja platformy Kubernetes, której chcesz użyć. |
ADMIN_USERNAME | Nazwa użytkownika administratora klastra. |
SSH_PUBLIC_KEY | Klucz publiczny SSH używany do bezpiecznej komunikacji z klastrem. |
CONTROL_PLANE_COUNT | Liczba węzłów płaszczyzny sterowania dla klastra. |
CONTROL_PLANE_VM_SIZE | Rozmiar maszyny wirtualnej dla węzłów płaszczyzny sterowania. |
INITIAL_AGENT_POOL_NAME | Nazwa początkowej puli agentów. |
INITIAL_AGENT_POOL_COUNT | Liczba węzłów w początkowej puli agentów. |
INITIAL_AGENT_POOL_VM_SIZE | Rozmiar maszyny wirtualnej dla początkowej puli agentów. |
POD_CIDR | Zakres sieci zasobników Kubernetes w klastrze w notacji CIDR. |
SERVICE_CIDR | Zakres sieci dla usług Kubernetes w klastrze w notacji CIDR. |
DNS_SERVICE_IP | Adres IP usługi DNS Kubernetes. |
Po zdefiniowaniu tych zmiennych możesz uruchomić polecenie interfejsu wiersza polecenia platformy Azure, aby utworzyć klaster. Dodaj flagę --debug
na końcu, aby udostępnić bardziej szczegółowe dane wyjściowe na potrzeby rozwiązywania problemów.
Aby zdefiniować te zmienne, użyj następujących poleceń zestawu i zastąp przykładowe wartości preferowanymi wartościami. Możesz również użyć wartości domyślnych dla niektórych zmiennych, jak pokazano w poniższym przykładzie:
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"
Ważne
Należy zastąpić symbole zastępcze CUSTOM_LOCATION, CSN_ARM_ID, CNI_ARM_ID i AAD_ADMIN_GROUP_OBJECT_ID rzeczywistymi wartościami przed uruchomieniem tych poleceń.
Po zdefiniowaniu tych zmiennych można utworzyć klaster Kubernetes, wykonując następujące polecenie interfejsu wiersza polecenia platformy Azure:
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}"
Jeśli nie ma wystarczającej pojemności do wdrożenia żądanych węzłów klastra, zostanie wyświetlony komunikat o błędzie. Jednak ten komunikat nie zawiera żadnych szczegółów dotyczących dostępnej pojemności. Stwierdza się, że tworzenie klastra nie może kontynuować z powodu niewystarczającej pojemności.
Uwaga
Obliczenie pojemności uwzględnia cały klaster platformy, a nie ogranicza się do poszczególnych stojaków. W związku z tym, jeśli pula agentów jest tworzona w strefie (gdzie stojak jest równy strefie) z niewystarczającą pojemnością, ale inna strefa ma wystarczającą pojemność, tworzenie klastra będzie kontynuowane, ale ostatecznie upłynął limit czasu. Takie podejście do sprawdzania pojemności ma sens tylko wtedy, gdy określona strefa nie jest określona podczas tworzenia klastra lub puli agentów.
Po kilku minutach polecenie zostanie ukończone i zwrócone informacje o klastrze. Aby uzyskać bardziej zaawansowane opcje, zobacz Szybki start: wdrażanie klastra Kubernetes platformy Azure Nexus przy użyciu Bicep.
Przeglądanie wdrożonych zasobów
Po zakończeniu wdrażania możesz wyświetlić zasoby przy użyciu interfejsu wiersza polecenia lub witryny Azure Portal.
Aby wyświetlić szczegóły klastra myNexusK8sCluster
w myResourceGroup
grupie zasobów, wykonaj następujące polecenie interfejsu wiersza polecenia platformy Azure:
az networkcloud kubernetescluster show \
--name myNexusK8sCluster \
--resource-group myResourceGroup
Ponadto aby uzyskać listę nazw puli agentów skojarzonych z klastrem myNexusK8sCluster
w myResourceGroup
grupie zasobów, możesz użyć następującego polecenia interfejsu wiersza polecenia platformy Azure.
az networkcloud kubernetescluster agentpool list \
--kubernetes-cluster-name myNexusK8sCluster \
--resource-group myResourceGroup \
--output table
Łączenie z klastrem
Teraz, gdy klaster Nexus Kubernetes został pomyślnie utworzony i połączony z usługą Azure Arc, możesz łatwo nawiązać z nim połączenie przy użyciu funkcji łączenia klastra. Połączenie klastra umożliwia bezpieczny dostęp do klastra i zarządzanie nim z dowolnego miejsca, co ułatwia interaktywne zadania programistyczne, debugowanie i administrowanie klastrem.
Aby uzyskać bardziej szczegółowe informacje na temat dostępnych opcji, zobacz Connect to an Azure Operator Nexus Kubernetes cluster (Nawiązywanie połączenia z klastrem Kubernetes operatora platformy Azure).
Uwaga
Podczas tworzenia klastra Nexus Kubernetes nexus automatycznie tworzy zarządzaną grupę zasobów przeznaczoną do przechowywania zasobów klastra w ramach tej grupy zostanie ustanowiony zasób klastra połączonego z usługą Arc.
Aby uzyskać dostęp do klastra, należy skonfigurować klaster connect kubeconfig
. Po zalogowaniu się do interfejsu wiersza polecenia platformy Azure przy użyciu odpowiedniej jednostki Firmy Microsoft Entra możesz uzyskać kubeconfig
niezbędne do komunikowania się z klastrem z dowolnego miejsca, nawet poza zaporą, która go otacza.
Ustaw
CLUSTER_NAME
zmienne iSUBSCRIPTION_ID
RESOURCE_GROUP
.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>
Wykonywanie zapytań względem zarządzanej grupy zasobów za pomocą
az
polecenia i przechowywania w usłudzeMANAGED_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)
Następujące polecenie uruchamia serwer proxy connectedk8s, który umożliwia nawiązanie połączenia z serwerem interfejsu API Kubernetes dla określonego klastra Nexus Kubernetes.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &
Użyj
kubectl
polecenia , aby wysyłać żądania do klastra:kubectl get pods -A
Powinna zostać wyświetlona odpowiedź z klastra zawierającego listę wszystkich węzłów.
Uwaga
Jeśli zostanie wyświetlony komunikat o błędzie "Nie można opublikować tokenu dostępu do serwera proxy klientaFailed w celu nawiązania połączenia z tożsamością usługi zarządzanej", może być konieczne wykonanie polecenia az login
w celu ponownego uwierzytelnienia na platformie Azure.
Dodawanie puli agentów
Klaster utworzony w poprzednim kroku ma jedną pulę węzłów. Dodajmy drugą pulę agentów przy użyciu az networkcloud kubernetescluster agentpool create
polecenia . Poniższy przykład tworzy pulę agentów o nazwie myNexusK8sCluster-nodepool-2
:
Możesz również użyć wartości domyślnych dla niektórych zmiennych, jak pokazano w poniższym przykładzie:
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 zdefiniowaniu tych zmiennych można dodać pulę agentów, wykonując następujące polecenie interfejsu wiersza polecenia platformy Azure:
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 kilku minutach polecenie zostanie ukończone i zwrócone informacje o puli agentów. Aby uzyskać bardziej zaawansowane opcje, zobacz Szybki start: wdrażanie klastra Kubernetes platformy Azure Nexus przy użyciu Bicep.
Uwaga
Podczas początkowego tworzenia klastra można dodać wiele pul agentów przy użyciu początkowych konfiguracji puli agentów. Jeśli jednak chcesz dodać pule agentów po początkowym utworzeniu, możesz użyć powyższego polecenia, aby utworzyć dodatkowe pule agentów dla klastra Nexus Kubernetes.
Poniższy przykład danych wyjściowych przypomina pomyślne utworzenie puli agentów.
$ 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
Czyszczenie zasobów
Gdy grupa zasobów nie jest już potrzebna, usuń ją. Grupa zasobów i wszystkie zasoby w grupie zasobów zostaną usunięte.
Użyj polecenia az group delete, aby usunąć grupę zasobów, klaster Kubernetes i wszystkie powiązane zasoby z wyjątkiem zasobów sieciowych Operator Nexus.
az group delete --name myResourceGroup --yes --no-wait
Następne kroki
Teraz można wdrożyć pliki CDF bezpośrednio za pośrednictwem połączenia klastra lub za pośrednictwem programu Azure Operator Service Manager.