Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
- Skonfiguruj klaster Kubernetes Azure Nexus używając Azure CLI.
Zanim rozpoczniesz
Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Użyj środowiska Bash w Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Get started with Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj Azure CLI. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie Azure CLI w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić Azure CLI w kontenerze Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do Azure CLI za pomocą polecenia az login. Aby zakończyć proces uwierzytelniania, wykonaj kroki wyświetlane na Twoim terminalu. Aby uzyskać inne opcje logowania, zobacz Uwierzytelnianie na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure.
Gdy zostaniesz o to poproszony/a, zainstaluj rozszerzenie Azure CLI przy pierwszym użyciu. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Używanie rozszerzeń i zarządzanie nimi za pomocą interfejsu wiersza polecenia platformy Azure.
Uruchom az version, aby sprawdzić zainstalowaną wersję i biblioteki zależne. Aby zaktualizować do najnowszej wersji, uruchom 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 accountpolecenia .Zapoznaj się z tabelą SKU maszyn wirtualnych w sekcji referencyjnej z listą obsługiwanych SKU.
Zapoznaj się z listą obsługiwanych wersji Kubernetes dla uzyskania informacji o wspieranych wersjach Kubernetes.
Utwórz grupę zasobów przy użyciu polecenia
az group create. 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 eastusPoniż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, musisz posiadać uprawnienia do zapisu w zasobach, które wdrażasz, oraz dostęp do wszystkich operacji na 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.
Potrzebujesz identyfikatora zasobu klastra Azure Operator Nexus
custom location.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.
Ten szybki start zakłada, że masz podstawową wiedzę na temat pojęć związanych z platformą 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:
| Variable | Description |
|---|---|
| LOKALIZACJA | Region świadczenia usługi Azure, w którym chcesz utworzyć klaster. |
| Grupa Zasobów | 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ć. |
| Nazwa użytkownika administratora | Nazwa użytkownika administratora klastra. |
| SSH_PUBLIC_KEY | Klucz publiczny SSH używany do bezpiecznej komunikacji z klastrem. |
| LICZBA_KOMPONENTÓW_STEROWANIA | Liczba węzłów płaszczyzny sterowania dla klastra. |
| CONTROL_PLANE_VM_SIZE | Rozmiar maszyny wirtualnej dla węzłów płaszczyzny sterowania. |
| Nazwa_Poczatkowej_Puli_Agentow | Nazwa początkowej puli agentów. |
| INITIAL_AGENT_POOL_COUNT | Liczba węzłów w pierwotnej puli agentów. |
| Początkowa wielkość maszyny wirtualnej puli agentów | Rozmiar maszyny wirtualnej dla początkowej puli agentów. |
| POD_CIDR | Zakres sieci podó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 / Notatka
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 wygaśnie limit czasu. Takie podejście do sprawdzania pojemności ma sens tylko wtedy, gdy konkretna strefa nie jest określona podczas tworzenia klastra lub puli agentów.
Po kilku minutach polecenie ukończy się i zwróci 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
Połącz się 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 / Notatka
Podczas tworzenia klastra Kubernetes Nexus, Nexus automatycznie tworzy zarządzaną grupę zasobów przeznaczoną do przechowywania zasobów klastra. W ramach tej grupy ustanawia się zasób klastra połączonego z Arc.
Aby uzyskać dostęp do klastra, należy skonfigurować klaster connect kubeconfig. Po zalogowaniu się do Azure CLI przy użyciu odpowiedniej jednostki Microsoft Entra możesz uzyskać kubeconfig konieczne do komunikacji z klastrem z dowolnego miejsca, nawet poza otaczającą go zaporą.
Ustaw
CLUSTER_NAME,RESOURCE_GROUPiSUBSCRIPTION_IDzmienne.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>Pobierz informacje o zarządzanej grupie zasobów za pomocą
azi przechowaj wMANAGED_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, żeby wysyłać żądania do klastra.kubectl get pods -APowinna zostać wyświetlona odpowiedź z klastra zawierającego listę wszystkich węzłów.
Uwaga / Notatka
Jeśli zostanie wyświetlony komunikat o błędzie "Nie można opublikować tokenu dostępu do serwera proxy klienta. Nie udało się połączyć z MSI", 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 / Notatka
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
Uprzątnij zasoby
Gdy grupa zasobów nie będzie już potrzebna, usuń grupę zasobów. 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
Dalsze kroki
Teraz można wdrożyć CNF-y bezpośrednio przez połączenie klastra lub przez usługę Azure Operator Service Manager.