Tworzenie izolowanego klastra usługi Azure Kubernetes Service (AKS) w sieci

Organizacje zwykle mają ścisłe wymagania dotyczące zabezpieczeń i zgodności, aby regulować ruch sieciowy wychodzący (wychodzący) z klastra w celu wyeliminowania ryzyka eksfiltracji danych. Domyślnie standardowe klastry usługi Azure Kubernetes Service (AKS) mają nieograniczony wychodzący dostęp do Internetu. Ten poziom dostępu do sieci umożliwia uruchamianym węzłom i usługom dostęp do zewnętrznych zasobów zgodnie z potrzebami. Jeśli chcesz ograniczyć ruch wychodzący, ograniczona liczba portów i adresów musi być dostępna, aby zachować zadania konserwacji klastra w dobrej kondycji. Koncepcyjny dokument dotyczący reguł sieci wychodzącej i reguł FQDN dla klastrów AKS zawiera listę wymaganych punktów końcowych dla klastra AKS oraz jego opcjonalnych dodatków i funkcji.

Jednym z typowych rozwiązań ograniczania ruchu wychodzącego z klastra jest użycie urządzenia zapory w celu ograniczenia ruchu na podstawie reguł zapory. Zapora ma zastosowanie, gdy aplikacja wymaga dostępu wychodzącego, ale gdy żądania wychodzące muszą być sprawdzane i zabezpieczone. Ręczne konfigurowanie zapory przy użyciu wymaganych reguł ruchu wychodzącego i nazw FQDN jest uciążliwym procesem, zwłaszcza jeśli jedynym wymaganiem jest utworzenie izolowanego klastra usługi AKS bez zależności wychodzących dla rozruchu klastra.

Aby zmniejszyć ryzyko eksfiltracji danych, klaster izolowany przez sieć umożliwia uruchamianie klastra usługi AKS bez żadnych zależności sieci wychodzących, nawet w przypadku pobierania składników/obrazów klastra z usługi Microsoft Artifact Registry (MAR). Operator klastra może przyrostowo skonfigurować dozwolony ruch wychodzący dla każdego scenariusza, który chce włączyć. W tym artykule przedstawiono kroki tworzenia izolowanego klastra sieciowego.

Zanim rozpoczniesz

  • Zapoznaj się z koncepcyjnym omówieniem tej funkcji, która zawiera wyjaśnienie sposobu działania izolowanych klastrów sieciowych. Artykuł przeglądowy także:

Uwaga

Typ none ruchu wychodzącego jest powszechnie dostępny. Typ block ruchu wychodzącego znajduje się w wersji zapoznawczej.

Ważne

Funkcje usługi AKS w wersji zapoznawczej są dostępne na zasadzie samoobsługi i dobrowolnego wyboru. 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ą na zasadzie najlepszych starań. 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:

  • Ten artykuł wymaga wersji 2.73.0 lub nowszej interfejsu wiersza polecenia platformy Azure. Jeśli używasz usługi Azure Cloud Shell, najnowsza wersja jest już tam zainstalowana.
  • Zainstaluj rozszerzenie Azure CLI w wersji 9.0.0b2 lub nowszej, jeśli używasz typu wychodzącego (wersja zapoznawcza).
    • Jeśli nie masz aks-preview jeszcze rozszerzenia, zainstaluj je przy użyciu az extension add polecenia .
      az extension add --name aks-preview
      
    • Jeśli masz już aks-preview rozszerzenie, zaktualizuj je, aby upewnić się, że masz najnowszą wersję za pomocą polecenia az extension update.
      az extension update --name aks-preview
      
  • Klastry sieciowo izolowane są obsługiwane na klastrach AKS z Kubernetes w wersji 1.30 lub wyższej.
  • Jeśli zdecydujesz się użyć opcji Bring your own (BYO) Azure Container Registry (ACR), upewnij się, że usługa ACR jest warstwą usługi Premium SKU.
  • Jeśli używasz klastra odizolowanego od sieci skonfigurowanego z integracją serwera interfejsu API z siecią wirtualną, postępuj zgodnie z wymaganiami wstępnymi i wskazówkami opisanymi w artykule Korzystanie z integracji serwera interfejsu API z siecią wirtualną w usłudze Azure Kubernetes Service.

Ustawianie zmiennych środowiskowych

Ustaw zmienne środowiskowe używane w tym artykule. Nazwa ACR musi być globalnie unikatowa i zawierać tylko małe litery alfanumeryczne.

RESOURCE_GROUP="myResourceGroup"
LOCATION="eastus"
AKS_NAME="myAKSCluster"
VNET_NAME="myVNet"
AKS_SUBNET_NAME="aksSubnet"
ACR_SUBNET_NAME="acrSubnet"
APISERVER_SUBNET_NAME="apiServerSubnet"
REGISTRY_NAME="myregistry${RANDOM}"
CLUSTER_IDENTITY_NAME="clusterIdentity"
KUBELET_IDENTITY_NAME="kubeletIdentity"

az group create --name ${RESOURCE_GROUP} --location ${LOCATION}

Wdróż klaster izolowany sieciowo z ACR zarządzanym przez AKS

Usługa AKS tworzy, zarządza i uzgadnia zasób ACR w tej opcji. Nie musisz przypisywać żadnych uprawnień ani zarządzać usługą ACR. Usługa AKS zarządza regułami pamięci podręcznej, łączem prywatnym i punktem końcowym używanym w izolowanym klastrze sieci.

Tworzenie izolowanego klastra sieciowego

Podczas tworzenia izolowanego sieciowo klastra AKS wybierz jeden z następujących trybów klastra prywatnego: oparty na łączu prywatnym lub integracja serwera API z siecią wirtualną.

Ustaw źródło artefaktu i typ ruchu wychodzącego zgodnie z wymaganiami dotyczącymi izolacji sieci.

Parametr Zaakceptowane wartości/efekt
--bootstrap-artifact-source Directpobiera obrazy bezpośrednio z Microsoft Artifact Registry (MAR) i nie jest odizolowany od sieci. Cache pobiera obrazy z prywatnego usługi ACR i jest odizolowany od sieci.
--outbound-type none program nie konfiguruje połączeń wychodzących dla klastra, więc można je skonfigurować. block (wersja zapoznawcza) blokuje wszystkie połączenia wychodzące.

Utwórz izolowany klaster sieci oparty na łączach prywatnych, uruchamiając polecenie az aks create z parametrami --bootstrap-artifact-source, --enable-private-clusteri --outbound-type .

az aks create --resource-group ${RESOURCE_GROUP} --name ${AKS_NAME} --bootstrap-artifact-source Cache --outbound-type none --network-plugin azure --enable-private-cluster

Integracja serwera API z VNet

Utwórz sieciowo izolowany klaster przy użyciu integracji serwera API z siecią VNet, uruchamiając polecenie az aks create z parametrami --bootstrap-artifact-source, --enable-private-cluster, --enable-apiserver-vnet-integration i --outbound-type.

az aks create --resource-group ${RESOURCE_GROUP} --name ${AKS_NAME} --bootstrap-artifact-source Cache --outbound-type none --network-plugin azure --enable-private-cluster --enable-apiserver-vnet-integration

Zaktualizować istniejący klaster usługi AKS do typu sieciowo izolowanego

Jeśli wolisz włączyć izolację sieci w istniejącym klastrze usługi AKS zamiast tworzyć nowy klaster, użyj polecenia az aks update .

Aby włączyć funkcję izolacji sieci w istniejącym klastrze usługi AKS, najpierw uruchom następujące polecenie, aby zaktualizować bootstrap-artifact-source:

az aks update --resource-group ${RESOURCE_GROUP} --name ${AKS_NAME} --bootstrap-artifact-source Cache

Następnie należy ręcznie odtworzyć wszystkie istniejące pule węzłów:

az aks upgrade --resource-group ${RESOURCE_GROUP} --name ${AKS_NAME} --node-image-only

Uwaga

Musisz upewnić się, że ruch wychodzący istnieje do momentu ukończenia pierwszego obrazu. Aby sprawdzić, czy proces reinstalacji został zakończony, uruchom polecenie:

NODEPOOLS=$(az aks nodepool list \
--resource-group "${RESOURCE_GROUP}" \
--cluster-name "${AKS_NAME}" \
--query "[].name" -o tsv)
for NODEPOOL in $NODEPOOLS; do
echo "Waiting for node pool $NODEPOOL to finish upgrading..."
az aks nodepool wait \
--resource-group "${RESOURCE_GROUP}" \
--cluster-name "${AKS_NAME}" \
--name "$NODEPOOL" \
--updated
echo "Node pool $NODEPOOL upgrade succeeded."
done

Zaczekaj i upewnij się, że ponowne obrazowanie zakończy się, a następnie uruchom następujące polecenie, aby zaktualizować outbound-type.

az aks update --resource-group ${RESOURCE_GROUP} --name ${AKS_NAME} --outbound-type none

Ważne

Pamiętaj, aby od razu odtworzyć pule węzłów klastra po zaktualizowaniu źródła artefaktu do pamięci podręcznej. W przeciwnym razie funkcja nie będzie obowiązywać dla klastra.

Wdrażanie izolowanego klastra sieciowego przy użyciu usługi Bring Your Own ACR

Usługa AKS obsługuje użycie własnego rejestru ACR (BYO). Aby obsługiwać scenariusz usługi BYO ACR, przed utworzeniem klastra AKS należy skonfigurować prywatny punkt końcowy usługi ACR i prywatną strefę DNS.

W poniższych krokach pokazano, jak przygotować te zasoby:

  • Własna sieć wirtualna i podsieci dla AKS i ACR.
  • Reguły usługi ACR, reguły pamięci podręcznej usługi ACR, prywatny punkt końcowy i prywatna strefa DNS.
  • Niestandardowa tożsamość płaszczyzny sterowania i tożsamość kubeletu.

Krok 1. Tworzenie sieci wirtualnej i podsieci

az network vnet create  --resource-group ${RESOURCE_GROUP} --name ${VNET_NAME} --address-prefixes 192.168.0.0/16

az network vnet subnet create --name ${AKS_SUBNET_NAME} --vnet-name ${VNET_NAME} --resource-group ${RESOURCE_GROUP} --address-prefixes 192.168.1.0/24

SUBNET_ID=$(az network vnet subnet show --name ${AKS_SUBNET_NAME} --vnet-name ${VNET_NAME} --resource-group ${RESOURCE_GROUP} --query 'id' --output tsv)

az network vnet subnet create --name ${ACR_SUBNET_NAME} --vnet-name ${VNET_NAME} --resource-group ${RESOURCE_GROUP} --address-prefixes 192.168.2.0/24 --private-endpoint-network-policies Disabled

Krok 2. Wyłączanie łączności wychodzącej sieci wirtualnej (opcjonalnie)

Na przykład ustaw podsieć AKS jako prywatną, ustawiając jej domyślny dostęp wychodzący na false.

az network vnet subnet update --resource-group ${RESOURCE_GROUP} --vnet-name ${VNET_NAME} --name ${AKS_SUBNET_NAME} --default-outbound false

Aby zapoznać się z innymi obsługiwanymi metodami i zagadnieniami dotyczącymi przejścia, zobacz Wyłączanie łączności wychodzącej sieci wirtualnej.

Krok 3. Tworzenie usługi ACR i włączanie pamięci podręcznej artefaktów

  1. Utwórz usługę ACR z wyłączonym dostępem do sieci publicznej.

    az acr create --resource-group ${RESOURCE_GROUP} --name ${REGISTRY_NAME} --sku Premium --public-network-enabled false
    
    REGISTRY_ID=$(az acr show --name ${REGISTRY_NAME} -g ${RESOURCE_GROUP}  --query 'id' --output tsv)
    
  2. Utwórz regułę pamięci podręcznej ACR przy użyciu następującego polecenia, aby użytkownicy mogli buforować obrazy kontenerów MAR i pliki binarne w nowym rejestrze ACR. Nazwa reguły pamięci podręcznej i nazwy repozytoriów muszą być zgodne z wytycznymi podanymi w następnej sekcji.

    az acr cache create -n aks-managed-mcr -r ${REGISTRY_NAME} -g ${RESOURCE_GROUP} --source-repo "mcr.microsoft.com/*" --target-repo "aks-managed-repository/*"
    

Uwaga

Dzięki BYO ACR twoim zadaniem jest upewnienie się, że reguła pamięci podręcznej ACR została utworzona i utrzymywana poprawnie, jak powyżej. Ten krok ma kluczowe znaczenie dla tworzenia klastra, działania i uaktualniania. Nie należy modyfikować tej reguły pamięci podręcznej.

Krok 4. Tworzenie prywatnego punktu końcowego dla usługi ACR

az network private-endpoint create --name myPrivateEndpoint --resource-group ${RESOURCE_GROUP} --vnet-name ${VNET_NAME} --subnet ${ACR_SUBNET_NAME} --private-connection-resource-id ${REGISTRY_ID} --group-id registry --connection-name myConnection

NETWORK_INTERFACE_ID=$(az network private-endpoint show --name myPrivateEndpoint --resource-group ${RESOURCE_GROUP} --query 'networkInterfaces[0].id' --output tsv)

REGISTRY_PRIVATE_IP=$(az network nic show --ids ${NETWORK_INTERFACE_ID} --query "ipConfigurations[?privateLinkConnectionProperties.requiredMemberName=='registry'].privateIPAddress" --output tsv)

DATA_ENDPOINT_PRIVATE_IP=$(az network nic show --ids ${NETWORK_INTERFACE_ID} --query "ipConfigurations[?privateLinkConnectionProperties.requiredMemberName=='registry_data_$LOCATION'].privateIPAddress" --output tsv)

Krok 5. Tworzenie prywatnej strefy DNS i dodawanie rekordów

Utwórz prywatną strefę DNS o nazwie privatelink.azurecr.io. Dodaj rekordy dla punktów końcowych: REST rejestru {REGISTRY_NAME}.azurecr.io oraz danych rejestru {REGISTRY_NAME}.{LOCATION}.data.azurecr.io.

az network private-dns zone create --resource-group ${RESOURCE_GROUP} --name "privatelink.azurecr.io"

az network private-dns link vnet create --resource-group ${RESOURCE_GROUP} --zone-name "privatelink.azurecr.io" --name MyDNSLink --virtual-network ${VNET_NAME} --registration-enabled false

az network private-dns record-set a create --name ${REGISTRY_NAME} --zone-name "privatelink.azurecr.io" --resource-group ${RESOURCE_GROUP}

az network private-dns record-set a add-record --record-set-name ${REGISTRY_NAME} --zone-name "privatelink.azurecr.io" --resource-group ${RESOURCE_GROUP} --ipv4-address ${REGISTRY_PRIVATE_IP}

az network private-dns record-set a create --name ${REGISTRY_NAME}.${LOCATION}.data --zone-name "privatelink.azurecr.io" --resource-group ${RESOURCE_GROUP}

az network private-dns record-set a add-record --record-set-name ${REGISTRY_NAME}.${LOCATION}.data --zone-name "privatelink.azurecr.io" --resource-group ${RESOURCE_GROUP} --ipv4-address ${DATA_ENDPOINT_PRIVATE_IP}

Krok 6. Tworzenie płaszczyzny kontrolnej oraz tożsamości kubeletów

Tożsamość płaszczyzny sterowania

az identity create --name ${CLUSTER_IDENTITY_NAME} --resource-group ${RESOURCE_GROUP}

CLUSTER_IDENTITY_RESOURCE_ID=$(az identity show --name ${CLUSTER_IDENTITY_NAME} --resource-group ${RESOURCE_GROUP} --query 'id' -o tsv)

CLUSTER_IDENTITY_PRINCIPAL_ID=$(az identity show --name ${CLUSTER_IDENTITY_NAME} --resource-group ${RESOURCE_GROUP} --query 'principalId' -o tsv)

Tożsamość Kubelet

az identity create --name ${KUBELET_IDENTITY_NAME} --resource-group ${RESOURCE_GROUP}

KUBELET_IDENTITY_RESOURCE_ID=$(az identity show --name ${KUBELET_IDENTITY_NAME} --resource-group ${RESOURCE_GROUP} --query 'id' -o tsv)

KUBELET_IDENTITY_PRINCIPAL_ID=$(az identity show --name ${KUBELET_IDENTITY_NAME} --resource-group ${RESOURCE_GROUP} --query 'principalId' -o tsv)

Jeśli aktualizujesz istniejący klaster usługi AKS, pomiń powyższe polecenia tworzenia tożsamości i pobierz istniejący identyfikator obiektu tożsamości kubelet:

KUBELET_IDENTITY_PRINCIPAL_ID=$(az aks show --resource-group ${RESOURCE_GROUP} --name ${AKS_NAME} --query identityProfile.kubeletidentity.objectId -o tsv)

Nadaj tożsamości kubelet uprawnienia do pobierania z ACR

Sprawdź tryb uprawnień przypisywania ról w rejestrze i wybierz odpowiednią rolę pobierania. Rejestry z włączoną funkcją ABAC używają roli Container Registry Repository Reader. Rejestry bez włączonej obsługi ABAC używają roli AcrPull.

ROLE_ASSIGNMENT_MODE=$(az acr show --name ${REGISTRY_NAME} --resource-group ${RESOURCE_GROUP} --query roleAssignmentMode -o tsv)

if [[ "${ROLE_ASSIGNMENT_MODE}" == "rbac-abac" ]]; then
  ACR_PULL_ROLE="Container Registry Repository Reader"
else
  ACR_PULL_ROLE="AcrPull"
fi

az role assignment create --role "${ACR_PULL_ROLE}" --scope ${REGISTRY_ID} --assignee-object-id ${KUBELET_IDENTITY_PRINCIPAL_ID} --assignee-principal-type ServicePrincipal

Po skonfigurowaniu tych zasobów, możesz następnie przejść do utworzenia izolowanego klastra AKS z usługą BYO ACR.

Krok 7. Tworzenie klastra izolowanego sieci przy użyciu usługi BYO ACR

Podczas tworzenia klastra z izolacją sieciową wybierz jeden z następujących trybów klastra prywatnego: oparty na łączu prywatnym lub integracja serwera API z siecią wirtualną.

Ustaw źródło artefaktu i typ ruchu wychodzącego zgodnie z wymaganiami dotyczącymi izolacji sieciowej.

Parametr Zaakceptowane wartości/efekt
--bootstrap-artifact-source Directpobiera obrazy bezpośrednio z Microsoft Artifact Registry (MAR) i nie jest odizolowany od sieci. Cache pobiera obrazy z prywatnego usługi ACR i jest odizolowany od sieci.
--outbound-type none program nie konfiguruje połączeń wychodzących dla klastra, więc można je skonfigurować. block (wersja zapoznawcza) blokuje wszystkie połączenia wychodzące.

Utwórz izolowany klaster sieci oparty na łączach prywatnych, który uzyskuje dostęp do usługi ACR, uruchamiając polecenie az aks create z wymaganymi parametrami.

az aks create --resource-group ${RESOURCE_GROUP} --name ${AKS_NAME} --vnet-subnet-id ${SUBNET_ID} --assign-identity ${CLUSTER_IDENTITY_RESOURCE_ID} --assign-kubelet-identity ${KUBELET_IDENTITY_RESOURCE_ID} --bootstrap-artifact-source Cache --bootstrap-container-registry-resource-id ${REGISTRY_ID} --outbound-type none --network-plugin azure --enable-private-cluster

Integracja serwera API z VNet

W przypadku klastra izolowanego sieciowo skonfigurowanego z integracją serwera API z siecią wirtualną (VNet) najpierw utwórz podsieć i przypisz odpowiednią rolę, używając następujących poleceń:

az network vnet subnet create --name ${APISERVER_SUBNET_NAME} --vnet-name ${VNET_NAME} --resource-group ${RESOURCE_GROUP} --address-prefixes 192.168.3.0/24 --delegations Microsoft.ContainerService/managedClusters

export APISERVER_SUBNET_ID=$(az network vnet subnet show --resource-group ${RESOURCE_GROUP} --vnet-name ${VNET_NAME} --name ${APISERVER_SUBNET_NAME} --query id -o tsv)
az role assignment create --scope ${APISERVER_SUBNET_ID} --role "Network Contributor" --assignee-object-id ${CLUSTER_IDENTITY_PRINCIPAL_ID} --assignee-principal-type ServicePrincipal

az role assignment create --scope ${SUBNET_ID} --role "Network Contributor" --assignee-object-id ${CLUSTER_IDENTITY_PRINCIPAL_ID} --assignee-principal-type ServicePrincipal

Utwórz izolowany klaster sieci prywatnej skonfigurowany za pomocą integracji z siecią wirtualną serwera API i uzyskaj dostęp do usługi ACR, uruchamiając polecenie az aks create z wymaganymi parametrami.

az aks create --resource-group ${RESOURCE_GROUP} --name ${AKS_NAME} --vnet-subnet-id ${SUBNET_ID} --assign-identity ${CLUSTER_IDENTITY_RESOURCE_ID} --assign-kubelet-identity ${KUBELET_IDENTITY_RESOURCE_ID} --bootstrap-artifact-source Cache --bootstrap-container-registry-resource-id ${REGISTRY_ID} --outbound-type none --network-plugin azure --enable-private-cluster --enable-apiserver-vnet-integration --apiserver-subnet-id ${APISERVER_SUBNET_ID}

Aktualizowanie istniejącego klastra usługi AKS

Jeśli wolisz włączyć izolację sieci w istniejącym klastrze usługi AKS zamiast tworzyć nowy klaster, użyj polecenia az aks update .

Podczas tworzenia prywatnego punktu końcowego i prywatnej strefy DNS dla usługi BYO ACR użyj istniejącej sieci wirtualnej i podsieci istniejącego klastra usługi AKS. Podczas przypisywania odpowiedniej roli ACR Pull do tożsamości kubelet użyj istniejącej tożsamości kubelet istniejącego klastra AKS.

Aby włączyć funkcję izolacji sieci w istniejącym klastrze usługi AKS, najpierw uruchom następujące polecenie, aby zaktualizować bootstrap-artifact-source:

az aks update --resource-group ${RESOURCE_GROUP} --name ${AKS_NAME} --bootstrap-artifact-source Cache --bootstrap-container-registry-resource-id ${REGISTRY_ID}

Następnie należy ręcznie odtworzyć wszystkie istniejące pule węzłów:

az aks upgrade --resource-group ${RESOURCE_GROUP} --name ${AKS_NAME} --node-image-only

Uwaga

Musisz upewnić się, że ruch wychodzący istnieje do momentu ukończenia pierwszego obrazu. Aby sprawdzić, czy proces reinstalacji został zakończony, uruchom polecenie:

NODEPOOLS=$(az aks nodepool list \
--resource-group "${RESOURCE_GROUP}" \
--cluster-name "${AKS_NAME}" \
--query "[].name" -o tsv)
for NODEPOOL in $NODEPOOLS; do
echo "Waiting for node pool $NODEPOOL to finish upgrading..."
az aks nodepool wait \
--resource-group "${RESOURCE_GROUP}" \
--cluster-name "${AKS_NAME}" \
--name "$NODEPOOL" \
--updated
echo "Node pool $NODEPOOL upgrade succeeded."
done

Zaczekaj i upewnij się, że ponowne obrazowanie zakończy się, a następnie uruchom następujące polecenie, aby zaktualizować outbound-type.

az aks update --resource-group ${RESOURCE_GROUP} --name ${AKS_NAME} --outbound-type none

Ważne

Pamiętaj, aby od razu odtworzyć pule węzłów klastra po zaktualizowaniu źródła artefaktu do pamięci podręcznej. W przeciwnym razie funkcja nie będzie obowiązywać dla klastra.

Aktualizowanie identyfikatora usługi ACR

Możesz zaktualizować prywatny rejestr ACR używany z klastrem odizolowanym od sieci. Aby zidentyfikować identyfikator zasobu usługi ACR, użyj polecenia az aks show.

az aks show --resource-group ${RESOURCE_GROUP} --name ${AKS_NAME}

Aktualizowanie identyfikatora usługi ACR jest wykonywane przez uruchomienie az aks update polecenia z parametrami --bootstrap-artifact-source i --bootstrap-container-registry-resource-id .

az aks update --resource-group ${RESOURCE_GROUP} --name ${AKS_NAME} --bootstrap-artifact-source Cache --bootstrap-container-registry-resource-id <new-byo-acr-resource-id>

Po zaktualizowaniu identyfikatora ACR w istniejącym klastrze, należy ręcznie ponownie skonfigurować wszystkie istniejące węzły.

az aks upgrade --resource-group ${RESOURCE_GROUP} --name ${AKS_NAME} --node-image-only

Ważne

Pamiętaj, aby ponownie utworzyć obraz puli węzłów klastra po włączeniu funkcji izolacji sieciowej klastra. W przeciwnym razie funkcja nie będzie obowiązywać dla klastra.

Sprawdź, czy w usłudze AKS jest włączony klaster z izolacją sieciową

Aby sprawdzić, czy funkcja klastra izolowanego sieci jest włączona, użyj az aks show polecenia .

az aks show --resource-group ${RESOURCE_GROUP} --name ${AKS_NAME}

Poniższe dane wyjściowe pokazują klaster odizolowany od sieci skonfigurowany z typem ruchu wychodzącego none. Upewnij się, że outboundType jest ustawione na none lub block, a artifactSource jest ustawione na Cache. Pole containerRegistryId identyfikuje mechanizm ACR używany do inicjalizacji.

{
  "kubernetesVersion": "<major>.<minor>.<patch>",
  "name": "myAKSCluster",
  "type": "Microsoft.ContainerService/ManagedClusters",
  "properties": {
    "networkProfile": {
      "outboundType": "none"
    },
    "bootstrapProfile": {
      "artifactSource": "Cache",
      "containerRegistryId": "/subscriptions/my-subscription-id/resourceGroups/my-node-resource-group-name/providers/Microsoft.ContainerRegistry/registries/my-registry-name"
    }
  }
}

Wyłączanie izolowanego klastra sieciowego w usłudze AKS

Wyłącz funkcję izolowanego klastra sieci, uruchamiając polecenie az aks update z parametrami --bootstrap-artifact-source i --outbound-type.

az aks update --resource-group ${RESOURCE_GROUP} --name ${AKS_NAME} --bootstrap-artifact-source Direct --outbound-type LoadBalancer

Po wyłączeniu funkcji w istniejącym klastrze należy ręcznie odtworzyć wszystkie istniejące węzły.

az aks upgrade --resource-group ${RESOURCE_GROUP} --name ${AKS_NAME} --node-image-only

Ważne

Pamiętaj, aby ponownie załadować obraz pul węzłów klastra po wyłączeniu funkcji izolacji sieciowej klastra. W przeciwnym razie funkcja nie będzie obowiązywać dla klastra.

Rozwiązywanie problemów

Jeśli występują problemy, takie jak ściąganie obrazu kończy się niepowodzeniem, zobacz Rozwiązywanie problemów z izolowanymi klastrami usługi Azure Kubernetes Service (AKS).

Następne kroki

Jeśli chcesz skonfigurować konfigurację ograniczeń ruchu wychodzącego przy użyciu usługi Azure Firewall, odwiedź stronę Kontrolowanie ruchu wychodzącego przy użyciu usługi Azure Firewall w usłudze AKS.

Jeśli chcesz ograniczyć sposób komunikacji zasobników między sobą a ograniczeniami ruchu wschodnio-zachodniego w klastrze, zobacz Zabezpieczanie ruchu między zasobnikami przy użyciu zasad sieciowych w usłudze AKS.