Tworzenie i dołączanie klastra Azure Kubernetes Service klastraCreate and attach an Azure Kubernetes Service cluster

Azure Machine Learning wdrożyć wytrenowane modele uczenia maszynowego w Azure Kubernetes Service.Azure Machine Learning can deploy trained machine learning models to Azure Kubernetes Service. Należy jednak najpierw utworzyć klaster usługi Azure Kubernetes Service (AKS) z obszaru roboczego usługi Azure ML lub dołączyć istniejący klaster usługi AKS.However, you must first either create an Azure Kubernetes Service (AKS) cluster from your Azure ML workspace, or attach an existing AKS cluster. Ten artykuł zawiera informacje dotyczące tworzenia i dołączania klastra.This article provides information on both creating and attaching a cluster.

Wymagania wstępnePrerequisites

OgraniczeniaLimitations

  • Jeśli potrzebujesz usługi usługa Load Balancer w warstwie Standardowa (SLB) wdrożonej w klastrze zamiast podstawowego zestawu Load Balancer (BLB), utwórz klaster w portalu usługi AKS,interfejsie wiersza polecenia/zestawie SDK, a następnie dołącz go do obszaru roboczego usługi AML.If you need a Standard Load Balancer(SLB) deployed in your cluster instead of a Basic Load Balancer(BLB), create a cluster in the AKS portal/CLI/SDK and then attach it to the AML workspace.

  • Jeśli masz skoja Azure Policy, która ogranicza tworzenie publicznych adresów IP, tworzenie klastra usługi AKS nie powiedzie się.If you have an Azure Policy that restricts the creation of Public IP addresses, then AKS cluster creation will fail. AKS wymaga publicznego adresu IP dla ruchu wychodzącego.AKS requires a Public IP for egress traffic. Artykuł 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.The egress traffic article also provides guidance to lock down egress traffic from the cluster through the Public IP, except for a few fully qualified domain names. Publiczny adres IP można włączyć na 2 sposoby:There are 2 ways to enable a Public IP:

    • Klaster może używać publicznego adresu IP utworzonego domyślnie z usługą BLB lub SLB alboThe cluster can use the Public IP created by default with the BLB or SLB, Or
    • Klaster można utworzyć bez publicznego adresu IP, a następnie publiczny adres IP jest konfigurowany przy użyciu zapory z trasą zdefiniowaną przez użytkownika.The cluster can be created without a Public IP and then a Public IP is configured with a firewall with a user defined route. Aby uzyskać więcej informacji, zobacz Customize cluster egress with a user-defined-route(Dostosowywanie ruchu wychodzącego klastra za pomocą trasy zdefiniowanej przez użytkownika).For more information, see Customize cluster egress with a user-defined-route.

    Płaszczyzna sterowania AML nie rozmawia z tym publicznym adresem IP.The AML control plane does not talk to this Public IP. Prowadzi on rozmowy z płaszczyzną sterowania usługi AKS na temat wdrożeń.It talks to the AKS control plane for deployments.

  • Jeśli dołączysz klaster usługi AKS z włączonym autoryzowanym zakresem adresów IP umożliwiającym dostęp do serwera interfejsu API,włącz zakresy adresów IP płaszczyzny sterowania AML dla klastra usługi AKS.If you attach an AKS cluster, which has an Authorized IP range enabled to access the API server, enable the AML control plane IP ranges for the AKS cluster. Płaszczyzna sterowania AML jest wdrażana w sparowanych regionach i wdraża zasobniki wnioskowania w klastrze usługi AKS.The AML control plane is deployed across paired regions and deploys inference pods on the AKS cluster. Bez dostępu do serwera interfejsu API nie można wdrożyć zasobników wnioskowania.Without access to the API server, the inference pods cannot be deployed. Zakresów adresów IP należy używać w obu sparowanych regionach podczas włączania zakresów adresów IP w klastrze usługi AKS.Use the IP ranges for both the paired regions when enabling the IP ranges in an AKS cluster.

    Autoryzowane zakresy adresów IP współpracuje tylko z usługa Load Balancer w warstwie Standardowa.Authorized IP ranges only works with Standard Load Balancer.

  • Podczas dołączania klastra usługi AKS musi on znajdować się w tej samej subskrypcji platformy Azure, co Azure Machine Learning roboczy.When attaching an AKS cluster, it must be in the same Azure subscription as your Azure Machine Learning workspace.

  • Jeśli chcesz użyć prywatnego klastra usługi AKS (przy użyciu usługi Azure Private Link), musisz najpierw utworzyć klaster, a następnie dołączyć go do obszaru roboczego.If you want to use a private AKS cluster (using Azure Private Link), you must create the cluster first, and then attach it to the workspace. Aby uzyskać więcej informacji, zobacz Create a private Azure Kubernetes Service cluster (Tworzenie klastra Azure Kubernetes Service prywatnego).For more information, see Create a private Azure Kubernetes Service cluster.

  • Nazwa obliczeniowa klastra usługi AKS MUSI być unikatowa w obszarze roboczym usługi Azure ML.The compute name for the AKS cluster MUST be unique within your Azure ML workspace. Może zawierać litery, cyfry i łączniki.It can include letters, digits and dashes. Musi zaczynać się literą, kończyć literą lub cyfrą i mieć długość od 3 do 24 znaków.It must start with a letter, end with a letter or digit, and be between 3 and 24 characters in length.

  • Jeśli chcesz wdrożyć modele w węzłach procesora GPU lub węzłach FPGA (lub dowolnej konkretnej sku), musisz utworzyć klaster z określoną sku.If you want to deploy models to GPU nodes or FPGA nodes (or any specific SKU), then you must create a cluster with the specific SKU. Nie ma obsługi tworzenia puli węzłów pomocniczych w istniejącym klastrze i wdrażania modeli w puli węzłów pomocniczych.There is no support for creating a secondary node pool in an existing cluster and deploying models in the secondary node pool.

  • Podczas tworzenia lub dołączania klastra możesz wybrać, czy chcesz utworzyć klaster do tworzenia i testowania, czy do produkcji.When creating or attaching a cluster, you can select whether to create the cluster for dev-test or production. Jeśli chcesz utworzyć klaster usługi AKS na potrzeby testowania, walidacji i testowania zamiast produkcyjnego, ustaw cel klastra na dev-test. If you want to create an AKS cluster for development, validation, and testing instead of production, set the cluster purpose to dev-test. Jeśli nie określisz celu klastra, zostanie utworzony klaster produkcyjny.If you do not specify the cluster purpose, a production cluster is created.

    Ważne

    Klaster dewelopersko-testowy nie jest odpowiedni dla ruchu na poziomie produkcyjnym i może zwiększyć czas wnioskowania.A dev-test cluster is not suitable for production level traffic and may increase inference times. Klastry dewelopersko-testowe również nie gwarantują odporności na uszkodzenia.Dev/test clusters also do not guarantee fault tolerance.

  • Jeśli podczas tworzenia lub dołączania klastra zostanie on użyty do produkcji, musi on zawierać co najmniej 12 procesorów wirtualnych.When creating or attaching a cluster, if the cluster will be used for production, then it must contain at least 12 virtual CPUs. Liczbę wirtualnych procesorów CPU można obliczyć przez pomnożenie liczby węzłów w klastrze przez liczbę rdzeni dostarczonych przez wybrany rozmiar maszyny wirtualnej.The number of virtual CPUs can be calculated by multiplying the number of nodes in the cluster by the number of cores provided by the VM size selected. Jeśli na przykład używasz maszyny wirtualnej o rozmiarze "Standard_D3_v2", która ma 4 rdzenie wirtualne, wybierz co najmniej 3 rdzenie jako liczbę węzłów.For example, if you use a VM size of "Standard_D3_v2", which has 4 virtual cores, then you should select 3 or greater as the number of nodes.

    W przypadku klastra dewelopersko-testowego zalecamy co najmniej 2 procesory wirtualne.For a dev-test cluster, we recommand at least 2 virtual CPUs.

  • Zestaw Azure Machine Learning SDK nie zapewnia obsługi skalowania klastra AKS.The Azure Machine Learning SDK does not provide support scaling an AKS cluster. Aby skalować węzły w klastrze, użyj interfejsu użytkownika klastra usługi AKS w Azure Machine Learning studio.To scale the nodes in the cluster, use the UI for your AKS cluster in the Azure Machine Learning studio. Możesz zmienić tylko liczbę węzłów, a nie rozmiar maszyny wirtualnej klastra.You can only change the node count, not the VM size of the cluster. Aby uzyskać więcej informacji na temat skalowania węzłów w klastrze usługi AKS, zobacz następujące artykuły:For more information on scaling the nodes in an AKS cluster, see the following articles:

  • Nie należy bezpośrednio aktualizować klastra przy użyciu konfiguracji YAML.Do not directly update the cluster by using a YAML configuration. Chociaż usługi Azure Kubernetes Services obsługują aktualizacje za pośrednictwem konfiguracji YAML, Azure Machine Learning wdrożenia zastąpią wprowadzone zmiany.While Azure Kubernetes Services supports updates via YAML configuration, Azure Machine Learning deployments will override your changes. Jedynymi dwoma polami YAML, które nie zostaną zastąpione, limity żądań oraz procesor i pamięć.The only two YAML fields that will not overwritten are request limits and and cpu and memory.

  • Tworzenie klastra AKS przy użyciu interfejsu Azure Machine Learning studio, zestawu SDK lub rozszerzenia interfejsu wiersza polecenia nie jest idempotentne.Creating an AKS cluster using the Azure Machine Learning studio UI, SDK, or CLI extension is not idempotent. Próba utworzenia zasobu ponownie spowoduje błąd, że klaster o takiej samej nazwie już istnieje.Attempting to create the resource again will result in an error that a cluster with the same name already exists.

    • Użycie szablonu Azure Resource Manager i zasobu Microsoft.MachineLearningServices/workspaces/computes do utworzenia klastra usługi AKS również nie jest idempotentne. Using an Azure Resource Manager template and the Microsoft.MachineLearningServices/workspaces/computes resource to create an AKS cluster is also not idempotent. Jeśli spróbujemy ponownie użyć szablonu w celu zaktualizowania istniejącego zasobu, zostanie wyświetlony ten sam błąd.If you attempt to use the template again to update an already existing resource, you will receive the same error.

Wersja usługi Azure Kubernetes ServiceAzure Kubernetes Service version

Azure Kubernetes Service umożliwia utworzenie klastra przy użyciu różnych wersji usługi Kubernetes.Azure Kubernetes Service allows you to create a cluster using a variety of Kubernetes versions. Aby uzyskać więcej informacji na temat dostępnych wersji, zobacz obsługiwane wersje kubernetes w Azure Kubernetes Service.For more information on available versions, see supported Kubernetes versions in Azure Kubernetes Service.

Podczas tworzenia Azure Kubernetes Service klastra przy użyciu jednej z następujących metod nie ma możliwości wyboru w tworzonej wersji klastra:When creating an Azure Kubernetes Service cluster using one of the following methods, you do not have a choice in the version of the cluster that is created:

  • Azure Machine Learning studio lub Azure Machine Learning sekcji Azure Portal.Azure Machine Learning studio, or the Azure Machine Learning section of the Azure portal.
  • Machine Learning dla interfejsu wiersza polecenia platformy Azure.Machine Learning extension for Azure CLI.
  • Azure Machine Learning SDK.Azure Machine Learning SDK.

Te metody tworzenia klastra usługi AKS używają domyślnej wersji klastra.These methods of creating an AKS cluster use the default version of the cluster. Wersja domyślna zmienia się wraz z czasem, gdy staną się dostępne nowe wersje kubernetes.The default version changes over time as new Kubernetes versions become available.

Podczas dołączania istniejącego klastra usługi AKS obsługujemy wszystkie obecnie obsługiwane wersje usługi AKS.When attaching an existing AKS cluster, we support all currently supported AKS versions.

Uwaga

W niektórych przypadkach brzegowych istnieje starszy klaster, który nie jest już obsługiwany.There may be edge cases where you have an older cluster that is no longer supported. W takim przypadku operacja dołączania zwróci błąd i zwróci listę obecnie obsługiwanych wersji.In this case, the attach operation will return an error and list the currently supported versions.

Możesz dołączyć wersje zapoznawcze.You can attach preview versions. Funkcje w wersji zapoznawczej są udostępniane bez umowy dotyczącej poziomu usług i nie są zalecane w przypadku obciążeń produkcyjnych.Preview functionality is provided without a service level agreement, and it's not recommended for production workloads. Niektóre funkcje mogą być nieobsługiwane lub ograniczone.Certain features might not be supported or might have constrained capabilities. Obsługa korzystania z wersji zapoznawczych może być ograniczona.Support for using preview versions may be limited. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

Dostępne i domyślne wersjeAvailable and default versions

Aby znaleźć dostępne i domyślne wersje usługi AKS, użyj polecenia az aks get-versionsinterfejsu wiersza polecenia platformy Azure.To find the available and default AKS versions, use the Azure CLI command az aks get-versions. Na przykład następujące polecenie zwraca wersje dostępne w regionie Zachodnie stany USA:For example, the following command returns the versions available in the West US region:

az aks get-versions -l westus -o table

Dane wyjściowe tego polecenia są podobne do następującego tekstu:The output of this command is similar to the following text:

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 pośrednictwem Azure Machine Learning, możesz użyć parametru , --query aby wybrać wersję domyślną:To find the default version that is used when creating a cluster through Azure Machine Learning, you can use the --query parameter to select the default version:

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:The output of this command is similar to the following text:

Result
--------
1.16.13

Jeśli chcesz programowo sprawdzić dostępne wersje, użyj interfejsu API REST Container Service Client - List Orchestrators.If you'd like to programmatically check the available versions, use the Container Service Client - List Orchestrators REST API. Aby znaleźć dostępne wersje, przyjrzyj się wpisom, w których orchestratorType znajduje się . KubernetesTo find the available versions, look at the entries where orchestratorType is Kubernetes. Skojarzone wpisy orchestrationVersion zawierają dostępne wersje, które można dołączyć do obszaru roboczego.The associated orchestrationVersion entries contain the available versions that can be attached to your workspace.

Aby znaleźć domyślną wersję używaną podczas tworzenia klastra za pośrednictwem Azure Machine Learning, znajdź wpis gdzie to orchestratorType i Kubernetes default true .To find the default version that is used when creating a cluster through Azure Machine Learning, find the entry where orchestratorType is Kubernetes and default is true. orchestratorVersionSkojarzona wartość to wersja domyślna.The associated orchestratorVersion value is the default version. Poniższy fragment kodu JSON przedstawia przykładowy wpis:The following JSON snippet shows an example entry:

...
 {
        "orchestratorType": "Kubernetes",
        "orchestratorVersion": "1.16.13",
        "default": true,
        "upgrades": [
          {
            "orchestratorType": "",
            "orchestratorVersion": "1.17.7",
            "isPreview": false
          }
        ]
      },
...

Tworzenie nowego klastra usługi AKSCreate a new AKS cluster

Szacowany czas: około 10 minut.Time estimate: Approximately 10 minutes.

Tworzenie lub dołączanie klastra usługi AKS jest procesem czasowym dla obszaru roboczego.Creating or attaching an AKS cluster is a one time process for your workspace. Można ponownie użyć tego klastra dla wielu wdrożeń.You can reuse this cluster for multiple deployments. Jeśli usuniesz klaster lub grupę zasobów, która go zawiera, musisz utworzyć nowy klaster przy następnym wdrożeniu.If you delete the cluster or the resource group that contains it, you must create a new cluster the next time you need to deploy. Do obszaru roboczego może być dołączonych wiele klastrów usługi AKS.You can have multiple AKS clusters attached to your workspace.

W poniższym przykładzie pokazano, jak utworzyć nowy klaster usługi AKS przy użyciu zestawu SDK i interfejsu wiersza polecenia:The following example demonstrates how to create a new AKS cluster using the SDK and CLI:

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:For more information on the classes, methods, and parameters used in this example, see the following reference documents:

Dołączanie istniejącego klastra usługi AKSAttach an existing AKS cluster

Szacowany czas: Około 5 minut.Time estimate: Approximately 5 minutes.

Jeśli masz już klaster usługi AKS w subskrypcji platformy Azure, możesz go używać z obszarem roboczym.If you already have AKS cluster in your Azure subscription, you can use it with your workspace.

Porada

Istniejący klaster usługi AKS może być w regionie świadczenia usługi Azure innym niż Azure Machine Learning roboczy.The existing AKS cluster can be in a Azure region other than your Azure Machine Learning workspace.

Ostrzeżenie

Nie należy tworzyć wielu równoczesnych załączników w tym samym klastrze usługi AKS z obszaru roboczego.Do not create multiple, simultaneous attachments to the same AKS cluster from your workspace. Na przykład dołączenie jednego klastra usługi AKS do obszaru roboczego przy użyciu dwóch różnych nazw.For example, attaching one AKS cluster to a workspace using two different names. Każdy nowy załącznik spowoduje przerwę w poprzednich załącznikach.Each new attachment will break the previous existing attachment(s).

Jeśli chcesz ponownie dołączyć klaster usługi AKS, na przykład aby zmienić ustawienie konfiguracji TLS lub innego klastra, musisz najpierw usunąć istniejący załącznik przy użyciu funkcji AksCompute.detach().If you want to re-attach an AKS cluster, for example to change TLS or other cluster configuration setting, you must first remove the existing attachment by using 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:For more information on creating an AKS cluster using the Azure CLI or portal, see the following articles:

W poniższym przykładzie pokazano, jak dołączyć istniejący klaster usługi AKS do obszaru roboczego:The following example demonstrates how to attach an existing AKS cluster to your workspace:

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:For more information on the classes, methods, and parameters used in this example, see the following reference documents:

Tworzenie lub dołączanie klastra usługi AKS z zakończeniem działania TLSCreate or attach an AKS cluster with TLS termination

Podczas tworzenia lub dołączania klastra usługi AKSmożna włączyć zakończenie TLS za pomocą AksCompute.provisioning_configuration() i AksCompute.attach_configuration().When you create or attach an AKS cluster, you can enable TLS termination with AksCompute.provisioning_configuration() and AksCompute.attach_configuration() configuration objects. Obie metody zwracają obiekt konfiguracji, który ma enable_ssl metodę , i można użyć enable_ssl, aby włączyć obsługę TLS.Both method return a configuration object that has an enable_ssl method, and you can use enable_ssl method to enable TLS.

W poniższym przykładzie pokazano, jak włączyć zakończenie TLS przy użyciu automatycznego generowania i konfigurowania certyfikatów TLS przy użyciu certyfikatu firmy Microsoft.Following example shows how to enable TLS termination with automatic TLS certificate generation and configuration by using Microsoft certificate under the hood.

   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 TLS przy użyciu niestandardowego certyfikatu i niestandardowej nazwy domeny.Following example shows how to enable TLS termination with custom certificate and custom domain name. W przypadku niestandardowej domeny i certyfikatu należy zaktualizować rekord DNS, aby wskazać adres IP punktu końcowego oceniania. Zobacz Aktualizowanie systemu DNSWith custom domain and certificate, you must update your DNS record to point to the IP address of scoring endpoint, please see Update your DNS

   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 wdrażania modelu w klastrze usługi AKS, zobacz zabezpieczanie usługi internetowej za pomocą usługi TLS za pośrednictwem usługi Azure Machine LearningFor more information about how to secure model deployment on AKS cluster, please see use TLS to secure a web service through Azure Machine Learning

Tworzenie lub dołączanie klastra usługi AKS w celu używania wewnętrznych Load Balancer z prywatnym adresem IPCreate or attach an AKS cluster to use Internal Load Balancer with private IP

Podczas tworzenia lub dołączania klastra usługi AKS można skonfigurować klaster do używania wewnętrznego Load Balancer.When you create or attach an AKS cluster, you can configure the cluster to use an Internal Load Balancer. W przypadku wewnętrznej Load Balancer punkty końcowe oceniania wdrożeń w u usługi AKS będą używać prywatnego adresu IP w sieci wirtualnej.With an Internal Load Balancer, scoring endpoints for your deployments to AKS will use a private IP within the virtual network. Poniższe fragmenty kodu pokazują, jak skonfigurować wewnętrzną Load Balancer klastra usługi AKS.Following code snippets show how to configure an Internal Load Balancer for an AKS cluster.

   
   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')

   # when you attach an AKS cluster, you can update the cluster to use internal load balancer after attach
   aks_target = AksCompute(ws,"myaks")

   # Change to the name of the subnet that contains AKS
   subnet_name = "default"
   # Update AKS configuration to use an internal load balancer
   update_config = AksUpdateConfiguration(None, "InternalLoadBalancer", subnet_name)
   aks_target.update(update_config)
   # Wait for the operation to complete
   aks_target.wait_for_completion(show_output = True)
   
   

Ważne

Azure Machine Learning nie obsługuje zakończenia TLS z wewnętrznymi Load Balancer.Azure Machine Learning does not support TLS termination with Internal Load Balancer. Adresy Load Balancer mają prywatny adres IP, a prywatny adres IP może być w innej sieci, a certyfikat może zostać odwłaszowany.Internal Load Balancer has a private IP and that private IP could be on another network and certificate can be recused.

Uwaga

Aby uzyskać więcej informacji na temat zabezpieczania środowiska wnioskowania, zobacz Secure an Azure Machine Learning Inferencing Environment (Zabezpieczanie środowiska wnioskowania wnioskowania)For more information about how to secure inferencing environment, please see Secure an Azure Machine Learning Inferencing Environment

Odłączanie klastra usługi AKSDetach an AKS cluster

Aby odłączyć klaster od obszaru roboczego, użyj jednej z następujących metod:To detach a cluster from your workspace, use one of the following methods:

Ostrzeżenie

Odłączenie Azure Machine Learning studio AKS przy użyciu interfejsu wiersza polecenia, zestawu SDK lub rozszerzenia interfejsu wiersza polecenia platformy Azure w celu odłączenia klastra usługi AKS nie powoduje usunięcia klastra usługi AKS.Using the Azure Machine Learning studio, SDK, or the Azure CLI extension for machine learning to detach an AKS cluster does not delete the AKS cluster. Aby usunąć klaster, zobacz Use the Azure CLI with AKS (Używanie interfejsu wiersza polecenia platformy Azure z usługą AKS).To delete the cluster, see Use the Azure CLI with AKS.

aks_target.detach()

Rozwiązywanie problemówTroubleshooting

Aktualizowanie klastraUpdate the cluster

Aktualizacje Azure Machine Learning zainstalowanych w klastrze Azure Kubernetes Service muszą być stosowane ręcznie.Updates to Azure Machine Learning components installed in an Azure Kubernetes Service cluster must be manually applied.

Te aktualizacje można zastosować, odłączając klaster od Azure Machine Learning roboczego, a następnie ponownie dołączyć klaster do obszaru roboczego.You can apply these updates by detaching the cluster from the Azure Machine Learning workspace, and then reattaching the cluster to the workspace. Jeśli protokół TLS jest włączony w klastrze, podczas ponownego dołączania klastra należy podać certyfikat TLS/SSL i klucz prywatny.If TLS is enabled in the cluster, you will need to supply the TLS/SSL certificate and private key when reattaching the cluster.

compute_target = ComputeTarget(workspace=ws, name=clusterWorkspaceName)
compute_target.detach()
compute_target.wait_for_completion(show_output=True)

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łączeniu klastra, łącząc się z klastrem przy użyciu narzędzia i pobierając klucz kubectl tajny azuremlfessl .If you no longer have the TLS/SSL certificate and private key, or you are using a certificate generated by Azure Machine Learning, you can retrieve the files prior to detaching the cluster by connecting to the cluster using kubectl and retrieving the secret azuremlfessl.

kubectl get secret/azuremlfessl -o yaml

Uwaga

Kubernetes przechowuje wpisy tajne w formacie base-64.Kubernetes stores the secrets in base-64 encoded format. Przed dostarczeniem wpisów tajnych do usługi należy zdekodować składniki i wpisów tajnych w bazie base-64. cert.pem key.pem attach_config.enable_sslYou will need to base-64 decode the cert.pem and key.pem components of the secrets prior to providing them to attach_config.enable_ssl.

Błędy usługi internetowejWebservice failures

Wiele błędów usługi sieci Web w u usługi AKS można debugować, łącząc się z klastrem przy użyciu polecenia kubectl .Many webservice failures in AKS can be debugged by connecting to the cluster using kubectl. Element dla kubeconfig.json klastra usługi AKS można uzyskać, uruchamiającYou can get the kubeconfig.json for an AKS cluster by running

az aks get-credentials -g <rg> -n <aks cluster name>

Następne krokiNext steps