Tworzenie klastra usługi Azure Kubernetes Service przy użyciu integracji z siecią wirtualną serwera API (wersja zapoznawcza)
Klaster usługi Azure Kubernetes Service (AKS) skonfigurowany przy użyciu integracji z siecią wirtualną serwera interfejsu API projektuje punkt końcowy serwera interfejsu API bezpośrednio do delegowanej podsieci w sieci wirtualnej, w której wdrożono usługę AKS. Integracja z siecią wirtualną serwera API umożliwia komunikację sieciową między serwerem interfejsu API a węzłami klastra bez konieczności łączenia prywatnego lub tunelu. Serwer interfejsu API jest dostępny za wewnętrznym adresem VIP modułu równoważenia obciążenia w delegowanej podsieci, z której węzły są skonfigurowane do użycia. Korzystając z integracji z siecią wirtualną usługi API Server, można zapewnić, że ruch sieciowy między serwerem interfejsu API i pulami węzłów pozostaje tylko w sieci prywatnej.
Łączność z serwerem interfejsu API
Płaszczyzna sterowania lub serwer interfejsu API znajduje się w subskrypcji platformy Azure zarządzanej przez usługę AKS. Klaster lub pula węzłów znajduje się w subskrypcji platformy Azure. Serwer i maszyny wirtualne tworzące węzły klastra mogą komunikować się ze sobą za pośrednictwem adresów IP serwera interfejsu API i adresów IP zasobników, które są przewidywane w delegowanej podsieci.
Integracja z siecią wirtualną serwera API jest obsługiwana w przypadku klastrów publicznych lub prywatnych. Dostęp publiczny można dodać lub usunąć po aprowizacji klastra. W przeciwieństwie do klastrów zintegrowanych z siecią wirtualną węzły agenta zawsze komunikują się bezpośrednio z prywatnym adresem IP wewnętrznego modułu równoważenia obciążenia (ILB) serwera interfejsu API bez używania systemu DNS. Cały węzeł do ruchu serwera interfejsu API jest przechowywany w sieci prywatnej i nie jest wymagany tunel do połączenia serwera interfejsu API z węzłem. Klienci poza klastrem, którzy muszą komunikować się z serwerem interfejsu API, mogą to zrobić normalnie, jeśli jest włączony dostęp do sieci publicznej. Jeśli dostęp do sieci publicznej jest wyłączony, należy postępować zgodnie z tą samą prywatną metodologią konfiguracji DNS co standardowe klastry prywatne.
Dostępność w regionach
Integracja z siecią wirtualną serwera API jest dostępna we wszystkich globalnych regionach świadczenia usługi Azure.
Wymagania wstępne
- Interfejs wiersza polecenia platformy Azure z rozszerzeniem aks-preview 0.5.97 lub nowszym.
- Jeśli używasz usługi ARM lub interfejsu API REST, wersja interfejsu API usługi AKS musi mieć wartość 2022-04-02-preview lub nowszą.
Instalowanie rozszerzenia interfejsu wiersza polecenia platformy Azure w wersji zapoznawczej usługi aks
Ważne
Funkcje usługi AKS w wersji zapoznawczej są dostępne na zasadzie samoobsługi. 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. 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:
Zainstaluj rozszerzenie aks-preview przy użyciu
az extension add
polecenia .az extension add --name aks-preview
Zaktualizuj do najnowszej wersji rozszerzenia wydanego
az extension update
za pomocą polecenia .az extension update --name aks-preview
Rejestrowanie flagi funkcji "EnableAPIServerVnetIntegrationPreview"
Zarejestruj flagę
EnableAPIServerVnetIntegrationPreview
funkcji przy użyciuaz feature register
polecenia .az feature register --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
Wyświetlenie stanu Zarejestrowane trwa kilka minut.
Sprawdź stan rejestracji przy użyciu
az feature show
polecenia :az feature show --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
Gdy stan będzie odzwierciedlał wartość Zarejestrowano, odśwież rejestrację dostawcy zasobów Microsoft.ContainerService przy użyciu
az provider register
polecenia .az provider register --namespace Microsoft.ContainerService
Tworzenie klastra usługi AKS z integracją z siecią wirtualną usługi API Server przy użyciu zarządzanej sieci wirtualnej
Klastry usługi AKS można skonfigurować za pomocą integracji z siecią wirtualną serwera interfejsu API w zarządzanej sieci wirtualnej lub w trybie "przynieś własną sieć wirtualną". Można je utworzyć jako klastry publiczne (z dostępem do serwera interfejsu API dostępnym za pośrednictwem publicznego adresu IP) lub klastrami prywatnymi (gdzie serwer interfejsu API jest dostępny tylko za pośrednictwem prywatnej łączności z siecią wirtualną). Można również przełączać się między stanem publicznym i prywatnym bez ponownego wdrażania klastra.
Tworzenie grupy zasobów
Utwórz grupę zasobów przy użyciu
az group create
polecenia .az group create --location westus2 --name <resource-group>
Wdrażanie klastra publicznego
Wdróż publiczny klaster usługi AKS z integracją z siecią wirtualną serwera INTERFEJSu API dla zarządzanej
az aks create
sieci wirtualnej przy użyciu polecenia z flagą--enable-api-server-vnet-integration
.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-apiserver-vnet-integration \ --generate-ssh-keys
Wdrażanie klastra prywatnego
Wdróż prywatny klaster usługi AKS z integracją z siecią wirtualną serwera INTERFEJSu API dla zarządzanej
az aks create
sieci wirtualnej przy użyciu polecenia z flagami--enable-api-server-vnet-integration
i--enable-private-cluster
.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-private-cluster \ --enable-apiserver-vnet-integration \ --generate-ssh-keys
Tworzenie prywatnego klastra usługi AKS z integracją z siecią wirtualną usługi API Server przy użyciu własnej sieci wirtualnej
W przypadku korzystania z własnej sieci wirtualnej należy utworzyć i delegować podsieć serwera interfejsu API do Microsoft.ContainerService/managedClusters
usługi , która przyznaje usłudze AKS uprawnienia do wstrzykiwania zasobników serwera interfejsu API i wewnętrznego modułu równoważenia obciążenia do tej podsieci. Nie można używać podsieci dla innych obciążeń, ale można jej używać w przypadku wielu klastrów usługi AKS znajdujących się w tej samej sieci wirtualnej. Minimalny obsługiwany rozmiar podsieci serwera interfejsu API to /28.
Tożsamość klastra musi mieć uprawnienia zarówno do podsieci serwera interfejsu API, jak i podsieci węzła. Brak uprawnień w podsieci serwera interfejsu API może spowodować niepowodzenie aprowizacji.
Ostrzeżenie
Klaster usługi AKS rezerwuje co najmniej 9 adresów IP w przestrzeni adresowej podsieci. Brak adresów IP może uniemożliwić skalowanie serwera interfejsu API i spowodować awarię serwera interfejsu API.
Tworzenie grupy zasobów
- Utwórz grupę zasobów przy użyciu
az group create
polecenia .
az group create --location <location> --name <resource-group>
Tworzenie sieci wirtualnej
Utwórz sieć wirtualną przy użyciu
az network vnet create
polecenia .az network vnet create --name <vnet-name> \ --resource-group <resource-group> \ --location <location> \ --address-prefixes 172.19.0.0/16
Utwórz podsieć serwera interfejsu
az network vnet subnet create
API przy użyciu polecenia .az network vnet subnet create --resource-group <resource-group> \ --vnet-name <vnet-name> \ --name <apiserver-subnet-name> \ --delegations Microsoft.ContainerService/managedClusters \ --address-prefixes 172.19.0.0/28
Utwórz podsieć klastra przy użyciu
az network vnet subnet create
polecenia .az network vnet subnet create --resource-group <resource-group> \ --vnet-name <vnet-name> \ --name <cluster-subnet-name> \ --address-prefixes 172.19.1.0/24
Tworzenie tożsamości zarządzanej i nadawanie jej uprawnień w sieci wirtualnej
Utwórz tożsamość zarządzaną przy użyciu
az identity create
polecenia .az identity create --resource-group <resource-group> --name <managed-identity-name> --location <location>
Przypisz rolę Współautor sieci do podsieci serwera interfejsu
az role assignment create
API przy użyciu polecenia .az role assignment create --scope <apiserver-subnet-resource-id> \ --role "Network Contributor" \ --assignee <managed-identity-client-id>
Przypisz rolę Współautor sieci do podsieci klastra
az role assignment create
przy użyciu polecenia .az role assignment create --scope <cluster-subnet-resource-id> \ --role "Network Contributor" \ --assignee <managed-identity-client-id>
Wdrażanie klastra publicznego
Wdróż publiczny klaster usługi AKS z integracją z siecią wirtualną usługi API Server przy użyciu
az aks create
polecenia z flagą--enable-api-server-vnet-integration
.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-apiserver-vnet-integration \ --vnet-subnet-id <cluster-subnet-resource-id> \ --apiserver-subnet-id <apiserver-subnet-resource-id> \ --assign-identity <managed-identity-resource-id> \ --generate-ssh-keys
Wdrażanie klastra prywatnego
Wdróż prywatny klaster usługi AKS z integracją z siecią wirtualną usługi API Server przy użyciu
az aks create
polecenia z flagami--enable-api-server-vnet-integration
i--enable-private-cluster
.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-private-cluster \ --enable-apiserver-vnet-integration \ --vnet-subnet-id <cluster-subnet-resource-id> \ --apiserver-subnet-id <apiserver-subnet-resource-id> \ --assign-identity <managed-identity-resource-id> \ --generate-ssh-keys
Konwertowanie istniejącego klastra usługi AKS na integrację z siecią wirtualną serwera API
Istniejące klastry publiczne/prywatne usługi AKS można przekonwertować na klastry integracji sieci wirtualnej serwera API, podając podsieć serwera interfejsu API spełniającą wymienione wcześniej wymagania. Te wymagania obejmują: w tej samej sieci wirtualnej co węzły klastra, uprawnienia przyznane dla tożsamości klastra usługi AKS, nieużytowane przez inne zasoby, takie jak prywatny punkt końcowy, oraz rozmiar co najmniej /28. Konwertowanie klastra jest migracją jednokierunkową. Klastry nie mogą mieć wyłączonej integracji z siecią wirtualną serwera interfejsu API po jej włączeniu.
To uaktualnienie powoduje przeprowadzenie uaktualnienia wersji obrazu węzła we wszystkich pulach węzłów i ponowne uruchomienie wszystkich obciążeń podczas uaktualniania obrazu stopniowego.
Ostrzeżenie
Przekonwertowanie klastra na integrację z siecią wirtualną serwera INTERFEJSu API powoduje zmianę adresu IP serwera interfejsu API, choć nazwa hosta pozostaje taka sama. Jeśli adres IP serwera interfejsu API został skonfigurowany w dowolnych zaporach lub regułach sieciowej grupy zabezpieczeń, może być konieczne zaktualizowanie tych reguł.
Zaktualizuj klaster do integracji z siecią wirtualną usługi API Server przy użyciu
az aks update
polecenia z flagą--enable-apiserver-vnet-integration
.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --enable-apiserver-vnet-integration \ --apiserver-subnet-id <apiserver-subnet-resource-id>
Włączanie lub wyłączanie trybu klastra prywatnego w istniejącym klastrze za pomocą integracji z siecią wirtualną serwera API
Klastry usługi AKS skonfigurowane za pomocą integracji z siecią wirtualną serwera API mogą mieć włączony lub wyłączony tryb sieci publicznej/klastra prywatnego bez ponownego wdrażania klastra. Nazwa hosta serwera interfejsu API nie zmienia się, ale w razie potrzeby publiczne wpisy DNS są modyfikowane lub usuwane.
Uwaga
--disable-private-cluster
jest obecnie w wersji zapoznawczej. Aby uzyskać więcej informacji, zobacz Odwołania i poziomy pomocy technicznej.
Włączanie trybu klastra prywatnego
Włącz tryb klastra prywatnego przy użyciu
az aks update
polecenia z flagą--enable-private-cluster
.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --enable-private-cluster
Wyłączanie trybu klastra prywatnego
Wyłącz tryb klastra prywatnego przy użyciu
az aks update
polecenia z flagą--disable-private-cluster
.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --disable-private-cluster
Nawiązywanie połączenia z klastrem przy użyciu narzędzia kubectl
Skonfiguruj
kubectl
, aby nawiązać połączenie z klastremaz aks get-credentials
przy użyciu polecenia .az aks get-credentials --resource-group <resource-group> --name <cluster-name>
Reguły zabezpieczeń sieciowej grupy zabezpieczeń
Cały ruch w sieci wirtualnej jest domyślnie dozwolony. Jeśli jednak dodano reguły sieciowej grupy zabezpieczeń w celu ograniczenia ruchu między różnymi podsieciami, upewnij się, że reguły zabezpieczeń sieciowej grupy zabezpieczeń zezwalają na następujące typy komunikacji:
Element docelowy | Źródło | Protokół | Port | Używanie |
---|---|---|---|---|
CiDR podsieci APIServer | Podsieć klastra | TCP | 443 i 4443 | Wymagane do włączenia komunikacji między węzłami i serwerem interfejsu API. |
CiDR podsieci APIServer | Azure Load Balancer | TCP | 9988 | Wymagane do włączenia komunikacji między usługą Azure Load Balancer i serwerem interfejsu API. Możesz również włączyć wszystkie komunikaty między usługą Azure Load Balancer i podsiecią CIDR serwera interfejsu API. |
Następne kroki
Aby uzyskać informacje o skojarzonych najlepszych rozwiązaniach, zobacz Najlepsze rozwiązania dotyczące łączności sieciowej i zabezpieczeń w usłudze AKS.
Azure Kubernetes Service