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.
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:
- W tym artykule opisano dwie opcje dla prywatnego zasobu usługi Azure Container Registry (ACR) używanego na potrzeby uruchamiania klastra — usługi ACR zarządzanej przez usługę AKS lub usługi ACR typu bring-your-own.
- Wyjaśnia dwa tryby klastra prywatnego do tworzenia prywatnego dostępu do serwera API — oparty na Private Link lub integrację serwera API z siecią wirtualną.
- Objaśnia dwa typy ruchu wychodzącego dla kontrolki ruchu wychodzącego klastra —
nonelubblock(wersja zapoznawcza). - Opisuje bieżące ograniczenia klastrów izolowanych w sieci.
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:
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 interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Uwierzytelnianie na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure.
Gdy pojawi się monit, 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 polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
- 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-previewjeszcze rozszerzenia, zainstaluj je przy użyciuaz extension addpolecenia .az extension add --name aks-preview - Jeśli masz już
aks-previewrozszerzenie, zaktualizuj je, aby upewnić się, że masz najnowszą wersję za pomocą poleceniaaz extension update.az extension update --name aks-preview
- Jeśli nie masz
- 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. |
Oparte na prywatnych linkach
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
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)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. |
Oparte na prywatnych linkach
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.