使用 Azure CLI 部署和管理叢集延伸模組
您可以在 AKS 叢集中建立延伸模組執行個體,設定必要和選擇性參數,包括更新和設定相關選項。 您也可以檢視、列出、更新和刪除延伸模組執行個體。
開始之前,請先閱讀叢集延伸模組 (部分機器翻譯)。
注意
本文中提供的範例並不完整,僅供展示功能。 如需命令與其參數的完整清單,請參閱 az k8s-extension CLI 參考 (部分機器翻譯)。
必要條件
Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,您可以建立免費帳戶。
您必須在訂用帳戶上註冊
Microsoft.ContainerService
和Microsoft.KubernetesConfiguration
資源提供者。 若要註冊這些提供者,請執行下列命令:az provider register --namespace Microsoft.ContainerService --wait az provider register --namespace Microsoft.KubernetesConfiguration --wait
AKS 叢集。 此叢集必須是以受控識別所建立,因為叢集延伸模組將無法與服務主體型叢集搭配運作。 針對使用
az aks create
建立的新叢集,預設會設定受控識別。 針對現有的服務主體型叢集,切換為使用--enable-managed-identity
旗標執行az aks update
來管理身分識別。 如需詳細資訊,請參閱使用受控識別。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 |
擴充功能的安裝範圍 - cluster 或 namespace |
--release-namespace |
這個參數表示命名空間位於要建立的發行版本之內。 只有將 scope 參數設為 cluster 時,此參數才相關。 |
--release-train |
延伸模組作者可以在各種發行訓練 (例如 Stable 、Preview 等) 中發佈版本。如果未明確設定此參數,會使用 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 |
擴充功能的安裝範圍 - cluster 或 namespace |
--release-train |
延伸模組作者可以在各種發行訓練 (例如 Stable 、Preview 等) 中發佈版本。如果未明確設定此參數,會使用 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 版本。
下一步
- 檢視目前可用的叢集延伸模組 (部分機器翻譯) 清單。
- 深入了解透過 Marketplace 取得的 Kubernetes 應用程式 (部分機器翻譯)。