使用 Azure CLI 部署和管理叢集延伸模組

您可以在 AKS 叢集中建立延伸模組執行個體,設定必要和選擇性參數,包括更新和設定相關選項。 您也可以檢視、列出、更新和刪除延伸模組執行個體。

在開始之前,請先閱讀叢集延伸模組

注意

本文中提供的範例並不完整,僅供展示功能。 如需命令及其參數的完整清單,請參閱 az k8s-extension CLI 參考文件

必要條件

  • Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,您可以建立免費帳戶

  • 您必須在訂用帳戶上註冊 Microsoft.ContainerServiceMicrosoft.KubernetesConfiguration 資源提供者。 若要註冊這些提供者,請執行下列命令:

    az provider register --namespace Microsoft.ContainerService --wait 
    az provider register --namespace Microsoft.KubernetesConfiguration --wait 
    
  • AKS 叢集。 此叢集必須是以受控識別所建立,因為叢集延伸模組將無法與服務主體型叢集搭配運作。 針對使用 az aks create 建立的新叢集,預設會設定受控識別。 針對現有以服務主體為基礎的叢集,請執行 az aks update 並搭配 --enable-managed-identity 旗標,以切換為受控識別。 如需詳細資訊,請參閱使用受控識別

  • Azure CLI 版本 >= 2.16.0 已安裝。 建議使用最新版本。

  • 最新版的 k8s-extension Azure CLI 延伸模組。 執行下列命令以安裝延伸模組:

    az extension add --name k8s-extension
    

    如果已經安裝延伸模組,請使用下列命令來確認您正在執行最新版本:

    az extension update --name k8s-extension
    

建立擴充功能執行個體

使用 k8s-extension create 建立新的擴充功能執行個體,並傳入必要參數的值。 此範例命令會在 AKS 叢集上建立 Azure Machine Learning 延伸模組執行個體:

az k8s-extension create --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters --configuration-settings enableInference=True allowInsecureConnections=True inferenceRouterServiceType=LoadBalancer

此範例命令會在 AKS 叢集上建立範例 Kubernetes 應用程式 (在 Marketplace 上發佈):

az k8s-extension create --name voteapp --extension-type Contoso.AzureVoteKubernetesAppTest --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters --plan-name testPlanID --plan-product testOfferID --plan-publisher testPublisherID --configuration-settings title=VoteAnimal value1=Cats value2=Dogs

注意

叢集擴充功能服務無法保留敏感性資訊超過 48 小時。 如果叢集延伸模組代理程式沒有網路連線超過 48 小時,而且無法判斷是否要在叢集上建立延伸模組,則延伸模組會轉換為 Failed 狀態。 一旦處於 Failed 狀態之後,您必須再次執行 k8s-extension create,才能建立全新的延伸模組執行個體。

必要參數

參數名稱 描述
--name 擴充功能執行個體的名稱
--extension-type 選取您想要在叢集上安裝的擴充功能類型。 例如:Microsoft.AzureML.Kubernetes
--cluster-name 必須在其上建立擴充功能執行個體的 AKS 叢集名稱
--resource-group 包含 AKS 叢集的資源群組
--cluster-type 必須在其上建立擴充功能執行個體的叢集類型。 指定 managedClusters,因為其對應至 AKS 叢集

選擇性參數

參數名稱 描述
--auto-upgrade-minor-version 布林值屬性,指定是否會自動升級擴充功能次要版本。 預設值:true。 如果此參數設定為 true,則無法設定 version 參數,因為版本將會動態更新。 如果設為 false,即使是修補程式版本,擴充功能也不會自動升級。
--version 要安裝的擴充功能版本(將擴充功能執行個體固定在特定版本)。 如果 auto-upgrade-minor-version 設定為 true,則不得提供。
--configuration-settings 可傳入擴充功能以控制其功能的設定。 在參數名稱之後,會以空格分隔 key=value 配對的形式傳遞值。 如果在命令中使用此參數,則 --configuration-settings-file 不能在相同的命令中使用。
--configuration-settings-file JSON 檔案的路徑,該檔案具有可用來傳入擴充功能組態設定的鍵值組。 如果在命令中使用此參數,則 --configuration-settings 不能在相同的命令中使用。
--configuration-protected-settings 無法使用 GET API 呼叫或 az k8s-extension show 命令來擷取這些設定,因此會用來傳入敏感性設定。 在參數名稱之後,會以空格分隔 key=value 配對的形式傳遞值。 如果在命令中使用此參數,則 --configuration-protected-settings-file 不能在相同的命令中使用。
--configuration-protected-settings-file 包含鍵值組的 JSON 檔案路徑,用於將敏感設定傳入擴充功能。 如果在命令中使用此參數,則 --configuration-protected-settings 不能在相同的命令中使用。
--scope 擴充功能的安裝範圍 - clusternamespace
--release-namespace 此參數指出要在哪個命名空間中建立該版本。 只有將 scope 參數設為 cluster 時,此參數才相關。
--release-train 擴充功能作者可以在不同的發行軌道中發佈版本,例如 StablePreview 等。如果未明確設定此參數,預設會使用 Stable。 當 --auto-upgrade-minor-version 參數設定為 false 時,無法使用此參數。
--target-namespace 這個參數表示將在發行版本中建立的命名空間。 為此擴充功能執行個體建立的系統帳戶,其權限將僅限於此命名空間。 只有將 scope 參數設為 namespace 時,此參數才相關。
--plan-name 延伸模組的方案識別碼,可在 Azure 入口網站的 [Marketplace] 頁面上,於 [使用量資訊 + 支援] 底下找到。
--plan-product 延伸模組的產品識別碼,可在 Azure 入口網站的 [Marketplace] 頁面上,於 [使用量資訊 + 支援] 底下找到。 這其中一個範例是所使用的 ISV 供應項目名稱。
--plan-publisher 延伸模組的發行者識別碼,可在 Azure 入口網站的 [Marketplace] 頁面上,於 [使用量資訊 + 支援] 底下找到。

顯示擴充功能執行個體的詳細資料

若要檢視目前已安裝延伸模組執行個體的詳細資料,請使用 k8s-extension show 並傳入必要參數的值。

az k8s-extension show --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

列出叢集上安裝的所有擴充功能

若要列出叢集上安裝的所有延伸模組,請使用 k8s-extension list 並傳入必要參數的值。

az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

更新擴充功能執行個體

注意

請參閱特定延伸模組類型的文件,以了解 --configuration-settings--configuration-protected-settings 中能夠更新的特定設定。 對於 --configuration-protected-settings,即使只更新一項設定,都必須提供所有設定。 如果省略這其中任何設定,即會將那些設定視為已淘汰並加以刪除。

若要更新現有的延伸模組執行個體,請使用 k8s-extension update 並傳入必要參數的值。 下列命令會更新 Azure Machine Learning 延伸模組執行個體的自動升級設定:

az k8s-extension update --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

適用於更新的必要參數

參數名稱 描述
--name 擴充功能執行個體的名稱
--extension-type 選取您想要在叢集上安裝的擴充功能類型。 例如:Microsoft.AzureML.Kubernetes
--cluster-name 必須在其上建立擴充功能執行個體的 AKS 叢集名稱
--resource-group 包含 AKS 叢集的資源群組
--cluster-type 必須在其上建立擴充功能執行個體的叢集類型。 指定 managedClusters,因為其對應至 AKS 叢集

若要更新透過 Marketplace 採購的 Kubernetes 應用程式,也需要下列參數:

參數名稱 描述
--plan-name 延伸模組的方案識別碼,可在 Azure 入口網站的 [Marketplace] 頁面上,於 [使用量資訊 + 支援] 底下找到。
--plan-product 延伸模組的產品識別碼,可在 Azure 入口網站的 [Marketplace] 頁面上,於 [使用量資訊 + 支援] 底下找到。 這其中一個範例是所使用的 ISV 供應項目名稱。
--plan-publisher 延伸模組的發行者識別碼,可在 Azure 入口網站的 [Marketplace] 頁面上,於 [使用量資訊 + 支援] 底下找到。

適用於更新的選擇性參數

參數名稱 描述
--auto-upgrade-minor-version 布林值屬性,指定是否會自動升級擴充功能次要版本。 預設值:true。 如果此參數設定為 true,則無法設定 version 參數,因為版本將會動態更新。 如果設為 false,即使是修補程式版本,擴充功能也不會自動升級。
--version 要安裝的擴充功能版本(將擴充功能執行個體固定在特定版本)。 如果 auto-upgrade-minor-version 設定為 true,則不得提供。
--configuration-settings 可傳入擴充功能以控制其功能的設定。 只需要提供需更新的設定。 提供的設定將會由提供的值取代。 在參數名稱之後,會以空格分隔 key=value 配對的形式傳遞值。 如果在命令中使用此參數,則 --configuration-settings-file 不能在相同的命令中使用。
--configuration-settings-file 包含鍵值組的 JSON 檔案路徑,可用來將組態設定傳入擴充功能。 如果在命令中使用此參數,則 --configuration-settings 不能在相同的命令中使用。
--configuration-protected-settings 無法使用 GET API 呼叫或 az k8s-extension show 命令來擷取這些設定,因此會用來傳入敏感性設定。 更新設定時,應該要指定所有設定。 如果省略某些設定,則會將這些設定視為已淘汰並刪除。 在參數名稱之後,會以空格分隔 key=value 配對的形式傳遞值。 如果在命令中使用此參數,則 --configuration-protected-settings-file 不能在相同的命令中使用。
--configuration-protected-settings-file 包含鍵值組的 JSON 檔案路徑,可用於將敏感設定傳入擴充功能。 如果在命令中使用此參數,則 --configuration-protected-settings 不能在相同的命令中使用。
--scope 擴充功能的安裝範圍 - clusternamespace
--release-train 延伸模組作者可以透過不同的發行通道(例如 StablePreview 等)發佈版本。如果未明確設定此參數,預設會使用 Stable。 當 autoUpgradeMinorVersion 參數設定為 false 時,無法使用此參數。

刪除擴充功能執行個體

若要刪除叢集上的延伸模組執行個體,請使用 k8s-extension-delete 並傳入必要參數的值。

az k8s-extension delete --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

注意

代表此擴充功能的 Azure 資源會立即刪除。 只有當 Kubernetes 叢集上執行的代理程式具備網路連線能力,且能再次連線至 Azure 服務以擷取所需狀態時,才會刪除與此延伸模組相關聯之叢集上的 Helm 發行版本。

下一步