Udostępnij za pośrednictwem


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"

  1. Zarejestruj flagę EnableAPIServerVnetIntegrationPreview funkcji przy użyciu az feature register polecenia .

    az feature register --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
    

    Wyświetlenie stanu Zarejestrowane trwa kilka minut.

  2. Sprawdź stan rejestracji przy użyciu az feature show polecenia :

    az feature show --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
    
  3. 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/managedClustersusł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

az group create --location <location> --name <resource-group>

Tworzenie sieci wirtualnej

  1. 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
    
  2. 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
    
  3. 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

  1. 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>
    
  2. 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>
    
  3. 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 klastrem az 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.