Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważna
Funkcje usługi AKS w wersji zapoznawczej są dostępne na zasadzie samoobsługi i wymagają zapisania się. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Wersje zapoznawcze usługi AKS są częściowo objęte pomocą techniczną dla klientów, świadczoną w miarę możliwości. W związku z tym te funkcje nie są przeznaczone do użytku produkcyjnego. Aby uzyskać więcej informacji, zobacz następujące artykuły pomocy technicznej:
Węzły Flex rozszerzają klaster Azure Kubernetes Service (AKS) na maszyny z systemem Linux zarządzane poza pulami węzłów zarządzanych przez klaster Azure. Przed dodaniem węzła flex wybierz, w jaki sposób host uwierzytelnia się w usłudze Azure, jak uzyskuje dostęp do serwera interfejsu API Kubernetes oraz jak ruch sieciowy jest kierowany między środowiskami AKS i węzłów flex.
Ten artykuł pomaga podjąć te decyzje, zaplanować nienakładające się zakresy adresów i utworzyć współdzielony plik środowiska dla pozostałych artykułów dotyczących wdrażania.
Zanim rozpoczniesz
- Zapoznaj się z omówieniem węzłów flex na potrzeby usługi AKS.
- Zapoznaj się z zagadnieniami dotyczącymi tożsamości i dostępu dla węzłów Flex.
- Zapoznaj się z pojęciami z zakresu sieci dla węzłów flex.
- Użyj środowiska Bash zgodnego z systemem Linux, które ma wymagane narzędzia i dostęp do sieci. W tej serii wdrożeń to środowisko jest nazywane środowiskiem Bash. Oddzielna maszyna przyłączona do klastra jest hostem elastycznego węzła.
- Zainstaluj Azure CLI. Uruchom polecenie
az --version, aby dowiedzieć się, jaka wersja jest zainstalowana. Aby zainstalować lub uaktualnić, zobacz Zainstaluj Azure CLI. - Zaloguj się do Azure przy użyciu konta, które może odczytać docelową subskrypcję i konfigurację sieci wirtualnej.
- Przygotuj istniejącą sieć wirtualną Azure i podsieć dla węzłów usługi AKS zarządzanych przez Azure. Sieć wirtualna może znajdować się w innej grupie zasobów niż klaster usługi AKS. W takim przypadku upewnij się, że tożsamość klastra usługi AKS ma wymagane uprawnienia w podsieci.
Podejmowanie decyzji dotyczących wdrażania
Zaplanuj następujące decyzje przed utworzeniem lub skonfigurowaniem zasobów.
| Decyzja | Opcje | Co kontroluje decyzja |
|---|---|---|
| Tożsamość hosta | Tożsamość zarządzana, tożsamość zarządzana usługi Azure Arc lub nazwa główna usługi | Jak agent flex node uwierzytelnia się w Azure |
| Dostęp do interfejsu API usługi AKS | Publiczny lub prywatny klaster usługi AKS | Jak środowisko Bash i hosty węzłów flex ustalają adres serwera API Kubernetes i łączą się z nim |
| Łączność z węzłem Flex | Łączność warstwy 3 lub brama Unbounded-Net WireGuard | Jak komunikują się węzły zarządzane przez usługę AKS, węzły elastyczne, zasobniki i usługi Kubernetes |
Te decyzje dotyczą różnych części wdrożenia. Na przykład wybranie publicznego punktu końcowego interfejsu API usługi AKS nie powoduje utworzenia łączności sieciowej między węzłami zarządzanymi przez usługę AKS i hostami węzłów flex.
Wybieranie tożsamości hosta
Użyj tabeli decyzji w pojęciach związanych z tożsamością i dostępem dla węzłów Flex, aby wybrać tożsamość platformy Azure używaną przez agenta węzła Flex.
Tożsamość hosta autoryzuje operacje platformy Azure. Nie zastępuje łączności sieciowej ani konfiguracji bootstrap Kubernetes, których host potrzebuje, aby dołączyć do klastra. Nie przechowuj poświadczeń we współdzielonym pliku środowiskowym.
Wybieranie dostępu do publicznego lub prywatnego interfejsu API usługi AKS
Serwer interfejsu API Kubernetes jest punktem końcowym zarządzania klastra. Środowisko Bash oraz host każdego węzła flex muszą być w stanie rozwiązać nazwę tego punktu końcowego i nawiązać z nim połączenie.
- Dostęp do publicznego interfejsu API usługi AKS używa zabezpieczonego publicznego punktu końcowego. Uwierzytelnianie i autoryzacja platformy Kubernetes nadal kontrolują dostęp do klastra. Publiczny punkt końcowy interfejsu API nie uwidacznia aplikacji działających w klastrze.
-
Prywatny dostęp do interfejsu API usługi AKS korzysta z prywatnego punktu końcowego w sieci wirtualnej AKS. Uruchom polecenia programu Azure CLI,
kubectloraz polecenia konfiguracji klastra w środowisku Bash uruchomionym na maszynie podłączonej do tej sieci prywatnej. Sieć flex node musi być również w stanie rozpoznać prywatną nazwę DNS klastra i kierować ruch do prywatnego punktu końcowego.
Wdrożenia węzłów Flex obsługują zarówno publiczny, jak i prywatny dostęp do serwera API. Ścieżka prywatna wymaga dodatkowej konfiguracji DNS, routingu i wykonywania poleceń, wywoływanej tam, gdzie ma zastosowanie. Aby uzyskać ogólne wskazówki dotyczące usługi AKS, zobacz Planowanie sieci płaszczyzny sterowania dla usługi AKS, Tworzenie prywatnego klastra usługi AKS i Nawiązywanie połączenia z prywatnym klastrem usługi AKS.
Wybierz połączenie z węzłem Flex
Ta seria wdrożeń tworzy klaster usługi AKS bez wbudowanej wtyczki sieciowej i instaluje Unbounded-Net w węzłach zarządzanych przez usługę AKS i węzłach flex. Unbounded-Net przypisuje zakresy adresów IP podów i konfiguruje trasowanie między środowiskami AKS i elastycznych węzłów. W tym artykule opisano ten przepływ pracy. Inne konfiguracje CNI lub konfiguracje sieci mogą wymagać odmiennej konfiguracji trasowania, zapory sieciowej, DNS, bramy sieciowej, zabezpieczeń i cyklu życia. Opis modelu sieci dla publicznej wersji zapoznawczej znajduje się w artykule Pojęcia dotyczące sieci dla węzłów Flex.
Zapewniasz bazowe połączenie sieciowe między środowiskami AKS i Flex Node. Łączność w warstwie 3 oznacza, że obie sieci węzłów mogą już kierować pakiety IP do adresów węzłów drugiej sieci, w obu kierunkach. Wybierz metodę pasującą do istniejącej sieci:
| Metoda łączności | Kiedy należy go używać |
|---|---|
| Peering sieci wirtualnych | Klaster AKS i hosty węzłów flex znajdują się w sieciach wirtualnych platformy Azure, w tym w sieciach wirtualnych w różnych regionach. |
| Brama sieci VPN | Hosty węzłów flex znajdują się w środowisku lokalnym lub innej sieci łączącej się z Azure za pośrednictwem zaszyfrowanej sieci VPN typu lokacja-lokacja. |
| ExpressRoute | Twoja organizacja używa dedykowanego połączenia prywatnego między siecią a Azure. |
| brama WireGuard Unbounded-Net | Sieci AKS i węzłów Flex nie mają prywatnego połączenia routowanego. Konfigurujesz i obsługujesz tunele WireGuard w puli węzłów bramy AKS, a te węzły bramy muszą być publicznie dostępne. Zaplanuj pojemność i dostępność bramy, ponieważ ruch podów między środowiskami zależy od tej puli. Zobacz publiczny klaster AKS z laboratorium Unbounded-Net WireGuard. |
Przewodnik Microsoft Learn używa łączności warstwy 3 z platformą Unbounded-Net.
| AKS API | Łączność z węzłem Flex | Wskazówki |
|---|---|---|
| Public | Łączność w warstwie 3 | Zalecana konfiguracja |
| Prywatne | Łączność w warstwie 3 | Wymaga dodatkowej konfiguracji DNS, routingu i wykonywania poleceń |
| Public | Publiczna brama WireGuard | Alternatywna topologia; zobacz laboratoria AKSFlexNode |
| Prywatne | Publiczna brama WireGuard | Nieopisane w tej dokumentacji |
Note
Aby uzyskać dodatkowe przykłady topologii, zobacz laboratoria AKSFlexNode, w tym przykłady korzystające z publicznego serwera interfejsu API AKS z bramą WireGuard i prywatnym serwerem interfejsu API AKS z siecią zarządzaną przez klienta. Te laboratoria uzupełniają konfigurację udokumentowaną w tym artykule. Te laboratoria mogą używać różnych składników sieciowych i mieć różne obowiązki operacyjne lub pomocy technicznej. Przed rozpoczęciem korzystania z laboratorium zapoznaj się z wymaganiami wstępnymi, ograniczeniami, odpowiednimi wersjami składników i obowiązkami klienta. Laboratorium GitHub nie rozszerza zakresu pomocy technicznej opisanego w Microsoft Learn.
Aby przekazać opinię na temat topologii, która nie jest reprezentowana, otwórz problem w repozytorium AKSFlexNode. Uwzględnij lokalizację hosta węzła Flex, model dostępu do interfejsu API AKS, proponowaną metodę łączności, proponowane rozwiązanie CNI oraz ścieżki sieciowe wymagane w danym scenariuszu.
Planowanie wymaganej łączności sieciowej
Skontaktuj się z administratorem sieci, aby upewnić się, że projekt sieci zapewnia następującą łączność:
| Requirement | Dlaczego jest to wymagane |
|---|---|
| Środowisko powłoki Bash może rozpoznać adres serwera API usługi AKS i nawiązać z nim połączenie. | To połączenie jest potrzebne do skonfigurowania klastra i zarządzania nim. |
| Każdy host elastycznego węzła może rozwiązywać problemy z serwerem interfejsu API usługi AKS i uzyskiwać do nich dostęp. | Agent flex node i kubelet używają tego połączenia, aby dołączyć do klastra i komunikować się z płaszczyzną sterowania Kubernetes. |
| Węzły zarządzane przez AKS i hosty węzłów Flex mogą uzyskiwać wzajemny dostęp do swoich prywatnych adresów IP. | W przypadku większości metod łączności Unbounded-Net używa sieci węzłów jako ścieżki bazowej między dwoma środowiskami. |
| Ruch związany z Podami i usługami Kubernetes może być kierowany między węzłami zarządzanymi przez AKS a węzłami flex. | Obciążenia wymagają komunikacji między węzłami, systemu DNS klastra i dostępu do usługi Kubernetes. |
| Płaszczyzna sterowania AKS może łączyć się z kubeletem na węźle flex. | AKS używa tej ścieżki do operacji kubeleta, w tym kubectl logs, kubectl exec i kubectl port-forward. |
Konfigurujesz zewnętrzną sieć hosta i zarządzasz nią, w tym routingiem, komunikacją równorzędną sieci wirtualnej, połączeniami VPN lub ExpressRoute, regułami zapory i sieciowych grup zabezpieczeń, usługą DNS, ustawieniami serwera proxy oraz konfiguracją Unbounded-Net opisaną w tej serii. Aby uzyskać pełny model odpowiedzialności, zobacz Zasady pomocy technicznej dla węzłów flex.
Ogranicz dostęp do zarządzania hostami do zatwierdzonych adresów źródłowych. W przypadku maszyny wirtualnej Azure skojarz sieciową grupę zabezpieczeń z podsiecią hosta lub interfejsem sieciowym. W przypadku hosta poza platformą Azure zastosuj analogiczne mechanizmy zapory. Jeśli używasz polecenia az vm create do utworzenia hosta węzła elastycznego, sprawdź wszystkie publiczne adresy IP i reguły sieciowej grupy zabezpieczeń utworzone przez to polecenie. Jeśli reguła SSH nie zostanie ograniczona, może zezwalać na połączenia z portem TCP 22 z dowolnego źródła publicznego.
Zbieranie wartości wdrożenia
Pozostałe artykuły ponownie użyją następujących wartości.
Typowe wartości zasobów Azure
| Variable | Description | Kiedy jest używane |
|---|---|---|
SUBSCRIPTION_ID |
Subskrypcja zawierająca klaster usługi AKS i powiązane zasoby Azure. | Każde wdrożenie |
RESOURCE_GROUP |
Grupa zasobów zawierająca klaster AKS. | Każde wdrożenie |
CLUSTER_NAME |
Nazwa klastra AKS. | Każde wdrożenie |
FLEX_POOL_NAME |
Nazwa elastycznej puli węzłów. Używaj tylko liter i cyfr. | Każde wdrożenie |
AKS_API_ACCESS |
Model dostępu do API klastra AKS. Ustaw wartość na public lub private. |
Przygotowywanie klastra i walidacja łączności interfejsu API |
AKS_RESOURCE_ID |
Identyfikator zasobu platformy Azure klastra AKS. Azure udostępnia tę wartość po wystąpieniu klastra. | Nowsze artykuły |
Wartości klastra AKS i sieci wirtualnej
| Variable | Description | Kiedy jest używane |
|---|---|---|
LOCATION |
Region platformy Azure dla klastra AKS. Upewnij się, że ten region spełnia wymagania dotyczące dostępności regionalnej . | Tworzenie klastra AKS |
AKS_VNET_NAME |
Nazwa sieci wirtualnej zawierającej podsieć usługi AKS. | Znajdowanie i weryfikowanie podsieci usługi AKS |
AKS_VNET_RESOURCE_GROUP |
Grupa zasobów zawierająca sieć wirtualną AKS. Może się różnić od RESOURCE_GROUP. |
Znajdowanie i weryfikowanie podsieci usługi AKS |
AKS_SUBNET_NAME |
Nazwa podsieci używanej przez węzły usługi AKS zarządzane przez Azure. | Znajdowanie i weryfikowanie podsieci usługi AKS |
AKS_SUBNET_ID |
Identyfikator zasobu platformy Azure podsieci AKS. | Tworzenie klastra AKS |
AKS_NODE_VM_SIZE |
Rozmiar maszyny wirtualnej platformy Azure dla zarządzanej przez platformę Azure puli węzłów systemowych usługi AKS. Ta wartość nie określa rozmiaru hosta węzła flex. | Tworzenie klastra AKS |
SERVICE_CIDR |
Zakres adresów dla usług Kubernetes. | Konfigurowanie profilu sieciowego klastra usługi AKS |
DNS_SERVICE_IP |
Adres IP usługi DNS Kubernetes. | Konfigurowanie profilu sieciowego klastra usługi AKS |
Przed utworzeniem pliku środowiska pobierz identyfikator zasobu podsieci AKS i zakresy adresów podsieci AKS:
az network vnet subnet show \
--resource-group '<virtual-network-resource-group>' \
--vnet-name '<virtual-network-name>' \
--name '<aks-subnet-name>' \
--query "{ResourceId:id,AddressPrefix:addressPrefix,AddressPrefixes:addressPrefixes}" \
--output json
Wartości adresów AKS i Unbounded-Net
Używasz funkcji SERVICE_CIDR i DNS_SERVICE_IP do konfigurowania profilu sieciowego klastra usługi AKS. Skonfiguruj zakresy CIDR węzłów i podów, aby utworzyć witryny Unbounded-Net używane w tym przewodniku.
Węzeł AKS, pod AKS, węzeł flex, pod flex oraz zakresy adresów usługi Kubernetes muszą być zgodne z wybraną architekturą sieci i nie mogą nakładać się na siebie nawzajem ani na żadną sieć osiągalną za pośrednictwem komunikacji równorzędnej sieci wirtualnych, sieci VPN lub usługi ExpressRoute. Koordynuj końcowe wartości z administratorem sieci.
Nie kopiuj przykładowych reguł CIDR z innego wdrożenia. CiDRs identyfikują przestrzeń adresową routingu, dlatego ponowne wykorzystanie przykładu nakładającego się na Azure lub połączonych sieci może sprawić, że ruch będzie niejednoznaczny lub uniemożliwić węzłom i zasobnikom dotarcie do siebie.
| Variable | Description | Używane przez |
|---|---|---|
AKS_SUBNET_CIDR |
Zakres adresów przypisany do podsieci dla węzłów AKS zarządzanych przez platformę Azure. | Weryfikacja poprawności sieci wirtualnej platformy Azure i podsieci AKS |
AKS_NODE_CIDR |
Unbounded-Net zakres węzłów lokacji zawierający podsieć węzłów AKS. | Lokacja klastra podstawowego Unbounded-Net |
AKS_POD_CIDR |
Pula adresów dla zasobników w węzłach usługi AKS zarządzanych przez Azure. | Lokacja klastra podstawowego Unbounded-Net |
FLEX_HOST_SUBNET_CIDR |
Zakres adresów zawierający hosty węzłów flex. | Weryfikacja sieci hosta węzła Flex |
FLEX_NODE_CIDR |
Unbounded-Net zakres węzłów lokacji zawierający podsieć hosta flex node. | Lokalizacja Unbounded-Net dla węzłów Flex |
FLEX_POD_CIDR |
Pula adresów dla zasobników w węzłach flex. | Lokalizacja Unbounded-Net dla węzłów Flex |
SERVICE_CIDR |
Zakres adresów dla usług Kubernetes. | Profil sieciowy klastra usługi AKS |
DNS_SERVICE_IP |
Adres IP usługi DNS Kubernetes. | Profil sieciowy klastra usługi AKS |
Zastosuj następujące reguły do planu adresowego:
-
AKS_SUBNET_CIDRmusi być zawarty w plikuAKS_NODE_CIDR. -
FLEX_HOST_SUBNET_CIDRmusi być zawarty w plikuFLEX_NODE_CIDR. -
DNS_SERVICE_IPmusi znajdować się wSERVICE_CIDR.
Te osiem wartości nie jest ośmioma oddzielnymi zakresami. Pięć to niezależne zakresy, które nie mogą się nakładać, dwa to zakresy podsieci zawarte w odpowiadającym im zakresie węzłów lokacji, a jeden jest pojedynczym adresem IP wewnątrz zakresu usług.
Poniższe wartości spełniają każdą regułę w tej sekcji. Traktuj je jako ilustrację relacji, a nie jako wartości domyślne. Przed ich użyciem potwierdź własne wartości względem Azure i połączonej przestrzeni adresowej sieci.
| Variable | Example | Relationship |
|---|---|---|
AKS_NODE_CIDR |
10.10.0.0/16 |
Zakres niezależny |
AKS_SUBNET_CIDR |
10.10.1.0/24 |
Zawarte w AKS_NODE_CIDR |
AKS_POD_CIDR |
10.244.0.0/16 |
Zakres niezależny |
FLEX_NODE_CIDR |
10.20.0.0/16 |
Zakres niezależny |
FLEX_HOST_SUBNET_CIDR |
10.20.1.0/24 |
Zawarte w FLEX_NODE_CIDR |
FLEX_POD_CIDR |
10.245.0.0/16 |
Zakres niezależny |
SERVICE_CIDR |
10.96.0.0/16 |
Zakres niezależny |
DNS_SERVICE_IP |
10.96.0.10 |
Wewnątrz SERVICE_CIDR |
Przejrzyj bieżące przestrzenie adresowe sieci wirtualnych platformy Azure:
az network vnet list \
--query "[].{ResourceGroup:resourceGroup,Name:name,AddressPrefixes:addressSpace.addressPrefixes}" \
--output table
Azure może identyfikować konflikty w zarządzanych zasobach, ale nie może weryfikować zakresów adresów w każdej połączonej sieci lokalnej lub zewnętrznej.
Wartości wersji składnika
Węzły Flex wymagają zgodnych wersji usługi AKS, rozszerzenia Azure CLI, platformy Unbounded-Net i agenta flex node. Użyj wersji wymienionych w tym artykule i nie wybieraj ani nie uaktualnij tych składników niezależnie.
| Variable | Description |
|---|---|
AKS_VERSION |
Obsługiwana wersja rozwiązania Kubernetes dla klastra usługi AKS. |
AKS_PREVIEW_VERSION |
aks-preview Wersja rozszerzenia interfejsu wiersza polecenia platformy Azure 22.0.0b8 lub nowsza. |
UNBOUNDED_VERSION |
Obsługiwana wersja Unbounded-Net. |
AKS_FLEX_NODE_VERSION |
Obsługiwana wersja agenta flex node. |
Dostępność regionalna
Węzły Flex wymagają usługi AKS w wersji v20260904 lub nowszej w regionie hostującym klaster. Usługa AKS automatycznie stosuje te datowane wydania i są one niezależne od wersji Kubernetes ustawionej w AKS_VERSION.
Przed utworzeniem lub wybraniem klastra otwórz kartę Wydanie usługi AKSw monitorze wersji usługi AKS, znajdź swój region i sprawdź wersję w obszarze Aktualnie w operacji. Wersje wydań usługi AKS używają formatu vYYYYMMDD. Jeśli w danym regionie jest widoczne starsze wydanie, poczekaj, aż wymagane wydanie zostanie w nim udostępnione, lub — jeśli wymagania wdrożeniowe na to pozwalają — wybierz region, w którym wymagane wydanie jest dostępne.
Wartość lokalnego obszaru roboczego
| Variable | Description |
|---|---|
WORK_DIR |
Katalog w środowisku powłoki Bash, w którym pozostałe artykuły przechowują pobrane, wygenerowane pliki i plik kubeconfig klastra. Wartość domyślna to ~/.local/share/aksflexnode/<deployment-name>. Aby zachować te pliki w innym miejscu, takie jak katalog tymczasowy, który zostanie usunięty po wdrożeniu, zmień WORK_DIR wartość w pliku środowiska. |
Tworzenie pliku środowiska udostępnionego
Utwórz jeden plik środowiska dla każdego wdrożenia. Plik zapewnia spójność niepoufnych wartości między pozostałymi artykułami i sesjami terminala.
Nie przechowuj tokenów dostępu, danych bootstrap, zawartości kubeconfig, poświadczeń jednostki usługi, certyfikatów, kluczy prywatnych certyfikatów ani kluczy prywatnych SSH w tym pliku.
Wybierz krótką etykietę wdrożenia i utwórz chroniony katalog dla pliku środowiska.
export FLEXNODE_DEPLOYMENT="flexnode-demo" export FLEXNODE_ENV_DIR="${HOME}/.config/aks-flexnode" export FLEXNODE_ENV_FILE="${FLEXNODE_ENV_DIR}/${FLEXNODE_DEPLOYMENT}.env" install -d -m 0700 "${FLEXNODE_ENV_DIR}"Utwórz plik środowiska.
if [[ -e "${FLEXNODE_ENV_FILE}" ]]; then printf 'Environment file already exists: %s\n' "${FLEXNODE_ENV_FILE}" >&2 false else install -m 0600 /dev/null "${FLEXNODE_ENV_FILE}" cat > "${FLEXNODE_ENV_FILE}" <<'EOF' set_flexnode_env() { if [[ "$#" -ne 2 || ! "$1" =~ ^[A-Za-z_][A-Za-z0-9_]*$ ]]; then printf 'Usage: set_flexnode_env NAME VALUE\n' >&2 return 2 fi local name="$1" local value="$2" local temporary_file temporary_file="$(mktemp "$(dirname "${FLEXNODE_ENV_FILE}")/flexnode.env.XXXXXX")" || return 1 awk -v prefix="export ${name}=" 'index($0, prefix) != 1 { print }' \ "${FLEXNODE_ENV_FILE}" > "${temporary_file}" || { rm -f "${temporary_file}" return 1 } printf 'export %s=%q\n' "${name}" "${value}" >> "${temporary_file}" || { rm -f "${temporary_file}" return 1 } install -m 0600 "${temporary_file}" "${FLEXNODE_ENV_FILE}" || { rm -f "${temporary_file}" return 1 } rm -f "${temporary_file}" export "${name}=${value}" } # Customer inputs export SUBSCRIPTION_ID='<subscription-id>' export LOCATION='<supported-aks-region>' export RESOURCE_GROUP='<aks-resource-group>' export CLUSTER_NAME='<aks-cluster-name>' export FLEX_POOL_NAME='<flex-node-pool-name>' export AKS_API_ACCESS='<public-or-private>' # AKS virtual network export AKS_VNET_NAME='<virtual-network-name>' export AKS_VNET_RESOURCE_GROUP='<virtual-network-resource-group>' export AKS_SUBNET_NAME='<aks-subnet-name>' export AKS_SUBNET_ID='<aks-subnet-resource-id>' # Network address ranges export AKS_SUBNET_CIDR='<aks-node-subnet-cidr>' export AKS_POD_CIDR='<aks-pod-cidr>' export AKS_NODE_CIDR='<aks-site-node-cidr>' export FLEX_HOST_SUBNET_CIDR='<flex-host-subnet-cidr>' export FLEX_NODE_CIDR='<flex-site-node-cidr>' export FLEX_POD_CIDR='<flex-node-pod-cidr>' export SERVICE_CIDR='<kubernetes-service-cidr>' export DNS_SERVICE_IP='<kubernetes-dns-service-ip>' # Azure-managed AKS system node pool export AKS_NODE_VM_SIZE='<supported-and-available-aks-node-vm-size>' # Compatible component versions for flex nodes (preview) export AKS_VERSION='1.36.2' export AKS_PREVIEW_VERSION='22.0.0b8' export UNBOUNDED_VERSION='v0.8.0' export AKS_FLEX_NODE_VERSION='v0.2.0' # Local paths export WORK_DIR="${HOME}/.local/share/aksflexnode/${FLEXNODE_DEPLOYMENT}" # Values recorded by later articles export AKS_RESOURCE_ID='' export FLEXNODE_KUBECONFIG='' export FLEX_POOL_RESOURCE_ID='' export FLEX_MACHINE_NAME='' export FLEX_HOST_NAME='' export FLEX_HOST_SSH_TARGET='' export FLEX_HOST_PRIVATE_IP='' export HOST_PRINCIPAL_OBJECT_ID='' export HOST_IDENTITY_CLIENT_ID='' export SSH_PUBLIC_KEY_PATH='' export SSH_PRIVATE_KEY_PATH='' export VM_RESOURCE_GROUP='' export VM_NAME='' export VM_RESOURCE_ID='' export ARC_RESOURCE_GROUP='' export ARC_MACHINE_NAME='' export ARC_RESOURCE_ID='' export SP_TENANT_ID='' export SP_CLIENT_ID='' export SP_OBJECT_ID='' EOF fiElement pomocniczy
set_flexnode_envumożliwia zapisywanie w późniejszych artykułach wartości generowanych przez platformę Azure bez dodawania do pliku duplikatów definicji.Otwórz
${FLEXNODE_ENV_FILE}w edytorze i zastąp każdą wartość ujętą w nawiasy kątowe. Pozostaw wartości w obszarze Wartości zarejestrowane w kolejnych artykułach puste.Sprawdź, czy nie pozostały żadne symbole zastępcze.
if grep -n '<[^>]*>' "${FLEXNODE_ENV_FILE}"; then printf 'Replace the unresolved placeholders before you continue.\n' >&2 false else printf 'No unresolved placeholders found.\n' fiZaładuj plik środowiska, utwórz katalog roboczy i ustaw aktywną subskrypcję Azure.
source "${FLEXNODE_ENV_FILE}" install -d -m 0700 "${WORK_DIR:?Load the deployment environment first.}" az account set --subscription "${SUBSCRIPTION_ID}" az account show \ --query "{Name:name,SubscriptionId:id}" \ --output tableUpewnij się, że zwrócony identyfikator subskrypcji jest zgodny z
SUBSCRIPTION_ID.Upewnij się, że
AKS_API_ACCESSidentyfikuje obsługiwaną ścieżkę:case "${AKS_API_ACCESS}" in public|private) printf 'AKS API access: %s\n' "${AKS_API_ACCESS}" ;; *) printf 'Set AKS_API_ACCESS to public or private.\n' >&2 false ;; esacUruchom każdą nową sesję terminalu, ustawiając etykietę wdrożenia i ładując jego plik środowiska:
export FLEXNODE_DEPLOYMENT="flexnode-demo" export FLEXNODE_ENV_FILE="${HOME}/.config/aks-flexnode/${FLEXNODE_DEPLOYMENT}.env" test -s "${FLEXNODE_ENV_FILE}" source "${FLEXNODE_ENV_FILE}" install -d -m 0700 "${WORK_DIR:?Load the deployment environment first.}"
Weryfikowanie wartości planowania
Sprawdź wybraną podsieć usługi AKS.
az network vnet subnet show \
--resource-group "${AKS_VNET_RESOURCE_GROUP}" \
--vnet-name "${AKS_VNET_NAME}" \
--name "${AKS_SUBNET_NAME}" \
--query "{AddressPrefix:addressPrefix,AddressPrefixes:addressPrefixes,ResourceId:id}" \
--output json
Upewnij się, że zwrócony identyfikator zasobu i zakres adresowy są zgodne z AKS_SUBNET_ID i AKS_SUBNET_CIDR.
Następny krok
Następnie przygotuj klaster usługi AKS dla węzłów Flex. W następnym artykule utworzysz publiczny lub prywatny klaster AKS i zapiszesz identyfikator zasobu klastra.