Tworzenie i dołączanie klastra usługi Azure Kubernetes Service przy użyciu wersji 1
DOTYCZY: Zestaw SDK języka Python w wersji 1
DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 1
Ważne
W tym artykule pokazano, jak używać interfejsu wiersza polecenia i zestawu SDK w wersji 1 do tworzenia lub dołączania klastra usługi Azure Kubernetes Service, który jest obecnie uważany za starszą funkcję. Aby dołączyć klaster usługi Azure Kubernetes Service przy użyciu zalecanego podejścia do wersji 2, zobacz Wprowadzenie do docelowego obliczeniowego rozwiązania Kubernetes w wersji 2.
Usługa Azure Machine Learning może wdrażać wytrenowane modele uczenia maszynowego w usłudze Azure Kubernetes Service. Należy jednak najpierw utworzyć klaster usługi Azure Kubernetes Service (AKS) z obszaru roboczego usługi Azure Machine Learning lub dołączyć istniejący klaster usługi AKS. Ten artykuł zawiera informacje dotyczące tworzenia i dołączania klastra.
Wymagania wstępne
Obszar roboczy usługi Azure Machine Learning. Aby uzyskać więcej informacji, zobacz Tworzenie obszaru roboczego usługi Azure Machine Learning.
Rozszerzenie interfejsu wiersza polecenia platformy Azure (wersja 1) dla usługi Machine Learning, zestawu SDK języka Python usługi Azure Machine Learning lub rozszerzenia programu Visual Studio Code usługi Azure Machine Learning.
Ważne
Niektóre polecenia interfejsu wiersza polecenia platformy Azure w tym artykule używają
azure-cli-ml
rozszerzenia , lub w wersji 1 dla usługi Azure Machine Learning. Obsługa rozszerzenia w wersji 1 zakończy się 30 września 2025 r. Możesz zainstalować rozszerzenie v1 i używać go do tej daty.Zalecamy przejście do
ml
rozszerzenia , lub w wersji 2 przed 30 września 2025 r. Aby uzyskać więcej informacji na temat rozszerzenia w wersji 2, zobacz Rozszerzenie interfejsu wiersza polecenia usługi Azure Machine Learning i zestaw Python SDK w wersji 2.Jeśli planujesz używać sieci wirtualnej platformy Azure do zabezpieczania komunikacji między obszarem roboczym usługi Azure Machine Learning i klastrem usługi AKS, obszar roboczy i skojarzone z nim zasoby (magazyn, magazyn kluczy, usługa Azure Container Registry) muszą mieć prywatne punkty końcowe lub punkty końcowe usługi w tej samej sieci wirtualnej co sieć wirtualna klastra usługi AKS. Postępuj zgodnie z samouczkiem , aby utworzyć bezpieczny obszar roboczy , aby dodać te prywatne punkty końcowe lub punkty końcowe usługi do sieci wirtualnej.
Ograniczenia
Usługę AKS można utworzyć lub dołączyć tylko jako pojedynczy docelowy obiekt obliczeniowy w obszarze roboczym usługi Azure Machine Learning. Usługa AKS nie obsługuje wielu załączników.
Jeśli chcesz wdrożyć w klastrze usługę Load Balancer w warstwie Standardowa (SLB) zamiast usługi Load Balancer w warstwie Podstawowa (BLB) , utwórz klaster w portalu / interfejsie wiersza polecenia / zestawie SDK usługi AKS, a następnie dołącz go do obszaru roboczego usługi Azure Machine Learning.
Jeśli masz zasady usługi Azure Policy, które ograniczają tworzenie publicznych adresów IP, tworzenie klastra usługi AKS zakończy się niepowodzeniem. Usługa AKS wymaga publicznego adresu IP na potrzeby ruchu wychodzącego. Artykuł na temat ruchu wychodzącego zawiera również wskazówki dotyczące blokowania ruchu wychodzącego z klastra za pośrednictwem publicznego adresu IP, z wyjątkiem kilku w pełni kwalifikowanych nazw domen. Istnieją dwa sposoby włączania publicznego adresu IP:
- Klaster może używać publicznego adresu IP utworzonego domyślnie z usługą BLB lub SLB lub
- Klaster można utworzyć bez publicznego adresu IP, a następnie publiczny adres IP jest skonfigurowany z zaporą ze zdefiniowaną trasą użytkownika. Aby uzyskać więcej informacji, zobacz Dostosowywanie ruchu wychodzącego klastra za pomocą trasy zdefiniowanej przez użytkownika.
Płaszczyzna sterowania usługi Azure Machine Learning nie komunikuje się z tym publicznym adresem IP. Komunikuje się z płaszczyzną sterowania usługi AKS na potrzeby wdrożeń.
Aby dołączyć klaster usługi AKS, jednostka usługi/użytkownik wykonujący operację musi mieć przypisaną rolę Właściciel lub Współautor kontroli dostępu na podstawie ról (RBAC) platformy Azure w grupie zasobów platformy Azure, która zawiera klaster. Jednostka usługi/użytkownik musi mieć również przypisaną rolę administratora klastra usługi Azure Kubernetes Service w klastrze.
Jeśli dołączasz klaster usługi AKS z włączonym autoryzowanym zakresem adresów IP na potrzeby dostępu do serwera interfejsu API, włącz zakresy adresów IP płaszczyzny sterowania usługi Azure Machine Learning dla klastra usługi AKS. Płaszczyzna sterowania usługi Azure Machine Learning jest wdrażana w sparowanych regionach i wdraża zasobniki wnioskowania w klastrze usługi AKS. Bez dostępu do serwera interfejsu API nie można wdrożyć zasobników wnioskowania. Włączając zakresy adresów IP w klastrze usługi AKS, użyj zakresów adresów IP dla obu sparowanych regionów.
Autoryzowane zakresy adresów IP działają tylko w przypadku usługi Load Balancer w warstwie Standardowa.
Jeśli chcesz użyć prywatnego klastra usługi AKS (z zastosowaniem usługi Azure Private Link), najpierw musisz utworzyć klaster, a następnie dołączyć go do obszaru roboczego. Aby uzyskać więcej informacji, zobacz Tworzenie prywatnego klastra usługi Azure Kubernetes Service.
Używanie publicznej w pełni kwalifikowanej nazwy domeny (FQDN) z prywatnym klastrem usługi AKSnie jest obsługiwane w usłudze Azure Machine Learning.
Nazwa obiektu obliczeniowego dla klastra usługi AKS MUSI być unikatowa w obszarze roboczym usługi Azure Machine Learning. Może ona zawierać litery, cyfry i kreski. Musi zaczynać się literą, kończyć literą lub cyfrą i składać się z 3 do 24 znaków.
Jeśli chcesz wdrożyć modele w węzłach procesora GPU lub węzłach FPGA (lub dowolnej konkretnej jednostce SKU), musisz utworzyć klaster z określoną jednostkę SKU. Tworzenie puli węzłów pomocniczych w istniejącym klastrze i wdrażanie modeli w tej puli węzłów pomocniczych nie jest obsługiwane.
Podczas tworzenia lub dołączania klastra możesz wybrać, czy chcesz utworzyć klaster na potrzeby tworzenia i testowania, czy produkcji. Jeśli chcesz utworzyć klaster usługi AKS na potrzeby programowania, walidacji i testowania, a nie produkcji, jako przeznaczenie klastra ustaw tworzenie i testowanie. Jeśli nie określisz przeznaczenia klastra, zostanie utworzony klaster produkcyjny.
Ważne
Klaster dev-test nie jest odpowiedni dla ruchu na poziomie produkcyjnym i może zwiększyć czas wnioskowania. Klastry tworzenia i testowania nie gwarantują również odporności na uszkodzenia.
Podczas tworzenia lub dołączania klastra, jeśli klaster będzie używany do produkcji, musi zawierać co najmniej 3 węzły. Klaster tworzenia i testowania musi zawierać co najmniej 1 węzeł.
Zestaw SDK usługi Azure Machine Learning nie zapewnia obsługi skalowania klastra usługi AKS. Aby skalować węzły w klastrze, użyj interfejsu użytkownika klastra usługi AKS w usłudze Azure Machine Learning studio. Można zmienić jedynie liczbę węzłów, a nie rozmiar maszyny wirtualnej klastra. Aby uzyskać więcej informacji na temat skalowania węzłów w klastrze usługi AKS, zobacz następujące artykuły:
Nie należy bezpośrednio aktualizować klastra przy użyciu konfiguracji YAML. Mimo że usługa Azure Kubernetes Service obsługuje aktualizacje za pośrednictwem konfiguracji YAML, wdrożenia usługi Azure Machine Learning zastąpią wprowadzone zmiany. Jedyne dwa pola YAML, które nie zostaną zastąpione, to limity żądań oraz procesor i pamięć.
Tworzenie klastra usługi AKS przy użyciu interfejsu użytkownika, zestawu SDK lub rozszerzenia interfejsu wiersza polecenia usługi Azure Machine Learning Studio nie jest idempotentne. Próba ponownego utworzenia zasobu spowoduje błąd typu „klaster o tej samej nazwie już istnieje”.
- Użycie szablonu usługi Azure Resource Manager i zasobu Microsoft.MachineLearningServices/workspaces/computes w celu utworzenia klastra usługi AKS również nie jest idempotentne. Jeśli spróbujesz ponownie użyć szablonu, aby zaktualizować już istniejący zasób, zostanie wyświetlony ten sam błąd.
Wersja usługi Azure Kubernetes Service
Usługa Azure Kubernetes Service umożliwia tworzenie klastra przy użyciu różnych wersji platformy Kubernetes. Aby uzyskać więcej informacji na temat dostępnych wersji, zobacz obsługiwane wersje platformy Kubernetes w usłudze Azure Kubernetes Service.
Podczas tworzenia klastra usługi Azure Kubernetes Service przy użyciu jednej z następujących metod nie masz wyboru w wersji utworzonego klastra:
- Azure Machine Learning Studio lub sekcja usługi Azure Machine Learning w witrynie Azure Portal.
- Rozszerzenie usługi Machine Learning dla interfejsu wiersza polecenia platformy Azure.
- Zestaw SDK usługi Azure Machine Learning.
Te metody tworzenia klastra usługi AKS używają domyślnej wersji klastra. Wersja domyślna zmienia się wraz z upływem czasu , gdy nowe wersje platformy Kubernetes staną się dostępne.
Podczas dołączania istniejącego klastra usługi AKS obsługujemy wszystkie obecnie obsługiwane wersje usługi AKS.
Ważne
Usługa Azure Kubernetes Service używa sterownika Blobfuse FlexVolume dla wersji =1.16 i sterownika CSI obiektów blob dla wersji <>=1.17. W związku z tym należy ponownie wdrożyć lub zaktualizować usługę internetową po uaktualnieniu klastra, aby wdrożyć metodę blobfuse dla wersji klastra.
Uwaga
Mogą wystąpić przypadki brzegowe, w których masz starszy klaster, który nie jest już obsługiwany. W takim przypadku operacja dołączania zwróci błąd i wyświetli listę aktualnie obsługiwanych wersji.
Możesz dołączyć wersje wersji zapoznawczej . Funkcje w wersji zapoznawczej są udostępniane bez umowy dotyczącej poziomu usług i nie są zalecane w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Obsługa korzystania z wersji zapoznawczych może być ograniczona. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
Dostępne i domyślne wersje
Aby znaleźć dostępne i domyślne wersje usługi AKS, użyj polecenia interfejsu wiersza poleceniaplatformy Azure az aks get-versions. Na przykład następujące polecenie zwraca wersje dostępne w regionie Zachodnie stany USA:
az aks get-versions -l westus -o table
Dane wyjściowe tego polecenia są podobne do następującego tekstu:
KubernetesVersion Upgrades
------------------- ----------------------------------------
1.18.6(preview) None available
1.18.4(preview) 1.18.6(preview)
1.17.9 1.18.4(preview), 1.18.6(preview)
1.17.7 1.17.9, 1.18.4(preview), 1.18.6(preview)
1.16.13 1.17.7, 1.17.9
1.16.10 1.16.13, 1.17.7, 1.17.9
1.15.12 1.16.10, 1.16.13
1.15.11 1.15.12, 1.16.10, 1.16.13
Aby znaleźć domyślną wersję używaną podczas tworzenia klastra za pomocą usługi Azure Machine Learning, możesz użyć parametru --query
, aby wybrać wersję domyślną:
az aks get-versions -l westus --query "orchestrators[?default == `true`].orchestratorVersion" -o table
Dane wyjściowe tego polecenia są podobne do następującego tekstu:
Result
--------
1.16.13
Jeśli chcesz programowo sprawdzić dostępne wersje, użyj interfejsu API REST klienta usługi kontenera — list Orchestrators. Aby znaleźć dostępne wersje, zapoznaj się z wpisami, w których orchestratorType
znajduje się Kubernetes
. Skojarzone orchestrationVersion
wpisy zawierają dostępne wersje, które można dołączyć do obszaru roboczego.
Aby znaleźć domyślną wersję używaną podczas tworzenia klastra za pomocą usługi Azure Machine Learning, znajdź wpis, gdzie orchestratorType
jest Kubernetes
i default
ma wartość true
. Skojarzona orchestratorVersion
wartość to domyślna wersja. Poniższy fragment kodu JSON przedstawia przykładowy wpis:
...
{
"orchestratorType": "Kubernetes",
"orchestratorVersion": "1.16.13",
"default": true,
"upgrades": [
{
"orchestratorType": "",
"orchestratorVersion": "1.17.7",
"isPreview": false
}
]
},
...
Tworzenie nowego klastra usługi AKS
Szacowany czas: około 10 minut.
Tworzenie lub dołączanie klastra usługi AKS jest jednorazowym procesem dla obszaru roboczego. Możesz ponownie użyć tego klastra w przypadku wielu wdrożeń. Jeśli usuniesz klaster lub grupę zasobów, która ją zawiera, musisz utworzyć nowy klaster przy następnym wdrożeniu. Do obszaru roboczego może być dołączonych wiele klastrów usługi AKS.
W poniższym przykładzie pokazano, jak utworzyć nowy klaster usługi AKS przy użyciu zestawu SDK i interfejsu wiersza polecenia:
DOTYCZY: Zestaw SDK języka Python w wersji 1
from azureml.core.compute import AksCompute, ComputeTarget
# Use the default configuration (you can also provide parameters to customize this).
# For example, to create a dev/test cluster, use:
# prov_config = AksCompute.provisioning_configuration(cluster_purpose = AksCompute.ClusterPurpose.DEV_TEST)
prov_config = AksCompute.provisioning_configuration()
# Example configuration to use an existing virtual network
# prov_config.vnet_name = "mynetwork"
# prov_config.vnet_resourcegroup_name = "mygroup"
# prov_config.subnet_name = "default"
# prov_config.service_cidr = "10.0.0.0/16"
# prov_config.dns_service_ip = "10.0.0.10"
# prov_config.docker_bridge_cidr = "172.17.0.1/16"
aks_name = 'myaks'
# Create the cluster
aks_target = ComputeTarget.create(workspace = ws,
name = aks_name,
provisioning_configuration = prov_config)
# Wait for the create process to complete
aks_target.wait_for_completion(show_output = True)
Aby uzyskać więcej informacji na temat klas, metod i parametrów używanych w tym przykładzie, zobacz następujące dokumenty referencyjne:
Dołączanie istniejącego klastra usługi AKS
Szacowany czas: około 5 minut.
Jeśli masz już klaster usługi AKS w subskrypcji platformy Azure, możesz użyć go z obszarem roboczym.
Napiwek
Istniejący klaster usługi AKS może znajdować się w regionie świadczenia usługi Azure innym niż obszar roboczy usługi Azure Machine Learning.
Ostrzeżenie
Nie twórz wielu równoczesnych załączników do tego samego klastra usługi AKS. Na przykład dołączenie jednego klastra usługi AKS do obszaru roboczego przy użyciu dwóch różnych nazw lub dołączenie jednego klastra usługi AKS do innego obszaru roboczego. Każdy nowy załącznik spowoduje przerwanie poprzednich istniejących załączników i spowoduje nieprzewidywalny błąd.
Jeśli chcesz ponownie dołączyć klaster usługi AKS, na przykład w celu zmiany protokołu TLS lub innego ustawienia konfiguracji klastra, musisz najpierw usunąć istniejący załącznik przy użyciu usługi AksCompute.detach().
Aby uzyskać więcej informacji na temat tworzenia klastra usługi AKS przy użyciu interfejsu wiersza polecenia platformy Azure lub portalu, zobacz następujące artykuły:
- Tworzenie klastra usługi AKS (interfejs wiersza polecenia)
- Tworzenie klastra usługi AKS (portal)
- Tworzenie klastra usługi AKS (szablon usługi ARM w szablonach szybkiego startu platformy Azure)
W poniższym przykładzie pokazano, jak dołączyć istniejący klaster usługi AKS do obszaru roboczego:
DOTYCZY: Zestaw SDK języka Python w wersji 1
from azureml.core.compute import AksCompute, ComputeTarget
# Set the resource group that contains the AKS cluster and the cluster name
resource_group = 'myresourcegroup'
cluster_name = 'myexistingcluster'
# Attach the cluster to your workgroup. If the cluster has less than 12 virtual CPUs, use the following instead:
# attach_config = AksCompute.attach_configuration(resource_group = resource_group,
# cluster_name = cluster_name,
# cluster_purpose = AksCompute.ClusterPurpose.DEV_TEST)
attach_config = AksCompute.attach_configuration(resource_group = resource_group,
cluster_name = cluster_name)
aks_target = ComputeTarget.attach(ws, 'myaks', attach_config)
# Wait for the attach process to complete
aks_target.wait_for_completion(show_output = True)
Aby uzyskać więcej informacji na temat klas, metod i parametrów używanych w tym przykładzie, zobacz następujące dokumenty referencyjne:
Tworzenie lub dołączanie klastra usługi AKS z kończeniem żądań protokołu TLS
Podczas tworzenia lub dołączania klastra usługi AKS można włączyć zakończenie protokołu TLS za pomocą obiektów konfiguracji AksCompute.provisioning_configuration() i AksCompute.attach_configuration(). Obie metody zwracają obiekt konfiguracji, który ma metodę enable_ssl , i można użyć metody enable_ssl do włączenia protokołu TLS.
W poniższym przykładzie pokazano, jak włączyć zakończenie protokołu TLS z automatycznym generowaniem i konfiguracją certyfikatów TLS przy użyciu certyfikatu firmy Microsoft pod maską.
DOTYCZY: Zestaw SDK języka Python w wersji 1
from azureml.core.compute import AksCompute, ComputeTarget
# Enable TLS termination when you create an AKS cluster by using provisioning_config object enable_ssl method
# Leaf domain label generates a name using the formula
# "<leaf-domain-label>######.<azure-region>.cloudapp.azure.com"
# where "######" is a random series of characters
provisioning_config.enable_ssl(leaf_domain_label = "contoso")
# Enable TLS termination when you attach an AKS cluster by using attach_config object enable_ssl method
# Leaf domain label generates a name using the formula
# "<leaf-domain-label>######.<azure-region>.cloudapp.azure.com"
# where "######" is a random series of characters
attach_config.enable_ssl(leaf_domain_label = "contoso")
W poniższym przykładzie pokazano, jak włączyć zakończenie protokołu TLS przy użyciu niestandardowego certyfikatu i niestandardowej nazwy domeny. W przypadku domeny niestandardowej i certyfikatu należy zaktualizować rekord DNS, aby wskazywał adres IP punktu końcowego oceniania, zobacz Aktualizowanie systemu DNS
DOTYCZY: Zestaw SDK języka Python w wersji 1
from azureml.core.compute import AksCompute, ComputeTarget
# Enable TLS termination with custom certificate and custom domain when creating an AKS cluster
provisioning_config.enable_ssl(ssl_cert_pem_file="cert.pem",
ssl_key_pem_file="key.pem", ssl_cname="www.contoso.com")
# Enable TLS termination with custom certificate and custom domain when attaching an AKS cluster
attach_config.enable_ssl(ssl_cert_pem_file="cert.pem",
ssl_key_pem_file="key.pem", ssl_cname="www.contoso.com")
Uwaga
Aby uzyskać więcej informacji na temat zabezpieczania wdrożenia modelu w klastrze usługi AKS, zobacz zabezpieczanie usługi internetowej za pomocą protokołu TLS za pośrednictwem usługi Azure Machine Learning
Tworzenie lub dołączanie klastra usługi AKS do używania wewnętrznego modułu równoważenia obciążenia z prywatnym adresem IP
Podczas tworzenia lub dołączania klastra usługi AKS można skonfigurować klaster tak, aby używał wewnętrznego modułu równoważenia obciążenia. W przypadku wewnętrznego modułu równoważenia obciążenia punkty końcowe oceniania dla wdrożeń w usłudze AKS będą używać prywatnego adresu IP w sieci wirtualnej. W poniższych fragmentach kodu pokazano, jak skonfigurować wewnętrzny moduł równoważenia obciążenia dla klastra usługi AKS.
DOTYCZY: Zestaw SDK języka Python w wersji 1
Aby utworzyć klaster usługi AKS używający wewnętrznego modułu równoważenia obciążenia, użyj load_balancer_type
parametrów i load_balancer_subnet
:
from azureml.core.compute.aks import AksUpdateConfiguration
from azureml.core.compute import AksCompute, ComputeTarget
# When you create an AKS cluster, you can specify Internal Load Balancer to be created with provisioning_config object
provisioning_config = AksCompute.provisioning_configuration(load_balancer_type = 'InternalLoadBalancer')
# Create the cluster
aks_target = ComputeTarget.create(workspace = ws,
name = aks_name,
provisioning_configuration = provisioning_config)
# Wait for the create process to complete
aks_target.wait_for_completion(show_output = True)
Ważne
Jeśli klaster usługi AKS jest skonfigurowany przy użyciu wewnętrznego modułu równoważenia obciążenia, użycie dostarczonego certyfikatu firmy Microsoft nie jest obsługiwane i należy użyć niestandardowego certyfikatu w celu włączenia protokołu TLS.
Uwaga
Aby uzyskać więcej informacji na temat zabezpieczania środowiska wnioskowania, zobacz Zabezpieczanie środowiska wnioskowania usługi Azure Machine Learning
Odłączanie klastra usługi AKS
Aby odłączyć klaster od obszaru roboczego, użyj jednej z następujących metod:
Ostrzeżenie
Używanie programu Azure Machine Learning Studio, zestawu SDK lub rozszerzenia interfejsu wiersza polecenia platformy Azure do uczenia maszynowego w celu odłączenia klastra usługi AKS nie powoduje usunięcia klastra usługi AKS. Aby usunąć klaster, zobacz Używanie interfejsu wiersza polecenia platformy Azure z usługą AKS.
DOTYCZY: Zestaw SDK języka Python w wersji 1
aks_target.detach()
Rozwiązywanie problemów
Aktualizowanie klastra
Aktualizacje składników usługi Azure Machine Learning zainstalowanych w klastrze usługi Azure Kubernetes Service muszą być stosowane ręcznie.
Te aktualizacje można zastosować, odłączając klaster od obszaru roboczego usługi Azure Machine Learning i ponownie dołączając klaster do obszaru roboczego.
DOTYCZY: Zestaw SDK języka Python w wersji 1
compute_target = ComputeTarget(workspace=ws, name=clusterWorkspaceName)
compute_target.detach()
compute_target.wait_for_completion(show_output=True)
Przed ponownym dołączeniem klastra do obszaru roboczego należy najpierw usunąć wszystkie azureml-fe
powiązane zasoby. Jeśli w klastrze nie ma aktywnej usługi, możesz usunąć azureml-fe
powiązane zasoby przy użyciu następującego kodu.
kubectl delete sa azureml-fe
kubectl delete clusterrole azureml-fe-role
kubectl delete clusterrolebinding azureml-fe-binding
kubectl delete svc azureml-fe
kubectl delete svc azureml-fe-int-http
kubectl delete deploy azureml-fe
kubectl delete secret azuremlfessl
kubectl delete cm azuremlfeconfig
Jeśli protokół TLS jest włączony w klastrze, należy podać certyfikat TLS/SSL i klucz prywatny podczas ponownego dołączenia klastra.
DOTYCZY: Zestaw SDK języka Python w wersji 1
attach_config = AksCompute.attach_configuration(resource_group=resourceGroup, cluster_name=kubernetesClusterName)
# If SSL is enabled.
attach_config.enable_ssl(
ssl_cert_pem_file="cert.pem",
ssl_key_pem_file="key.pem",
ssl_cname=sslCname)
attach_config.validate_configuration()
compute_target = ComputeTarget.attach(workspace=ws, name=args.clusterWorkspaceName, attach_configuration=attach_config)
compute_target.wait_for_completion(show_output=True)
Jeśli nie masz już certyfikatu TLS/SSL i klucza prywatnego lub używasz certyfikatu wygenerowanego przez usługę Azure Machine Learning, możesz pobrać pliki przed odłączenia klastra, łącząc się z klastrem przy użyciu polecenia kubectl
i pobierając wpis tajny azuremlfessl
.
kubectl get secret/azuremlfessl -o yaml
Uwaga
Platforma Kubernetes przechowuje wpisy tajne w formacie zakodowanym w formacie Base64. Przed dostarczeniem ich attach_config.enable_ssl
do pliku należy zdekodować cert.pem
składniki i i key.pem
wpisów tajnych.
Błędy usługi internetowej
Wiele błędów usługi internetowej w usłudze AKS można debugować, łącząc się z klastrem przy użyciu polecenia kubectl
. Klaster usługi AKS można uzyskać kubeconfig.json
, uruchamiając polecenie
DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 1
az aks get-credentials -g <rg> -n <aks cluster name>
Usuwanie zasobów związanych z usługą azureml-fe
Po odłączeniu klastra, jeśli w klastrze nie ma żadnej aktywnej usługi, usuń azureml-fe
powiązane zasoby przed ponownym dołączeniem:
kubectl delete sa azureml-fe
kubectl delete clusterrole azureml-fe-role
kubectl delete clusterrolebinding azureml-fe-binding
kubectl delete svc azureml-fe
kubectl delete svc azureml-fe-int-http
kubectl delete deploy azureml-fe
kubectl delete secret azuremlfessl
kubectl delete cm azuremlfeconfig
Moduły równoważenia obciążenia nie powinny mieć publicznych adresów IP
Podczas próby utworzenia lub dołączenia klastra usługi AKS może zostać wyświetlony komunikat o odmowie żądania, ponieważ "Moduły równoważenia obciążenia nie powinny mieć publicznych adresów IP". Ten komunikat jest zwracany, gdy administrator zastosował zasady uniemożliwiające używanie klastra usługi AKS z publicznym adresem IP.
Aby rozwiązać ten problem, utwórz/dołącz klaster przy użyciu parametrów load_balancer_type
i load_balancer_subnet
. Aby uzyskać więcej informacji, zobacz Wewnętrzny moduł równoważenia obciążenia (prywatny adres IP).