在已啟用 Azure Arc 的 Kubernetes 上建立和管理自訂位置
自訂位置功能提供了一個方式,讓您將已啟用 Azure Arc 的 Kubernetes 叢集設定為部署 Azure 供應項目執行個體的目標位置。 可在自訂位置上部署的 Azure 供應項目範例包括資料庫 (例如由 Azure Arc 啟用的 SQL 受控執行個體以及已啟用 Azure Arc 的 PostgreSQL 伺服器) 或應用程式執行個體 (例如 App Services、Functions、Event Grid、Logic Apps 和 API 管理)。
自訂位置會一對一地對應至已啟用 Azure Arc 的 Kubernetes 叢集內的命名空間。 與 Azure 角色型存取控制 (Azure RBAC) 結合的自訂位置 Azure 資源可用來為應用程式開發人員或資料庫管理員授與精細的權限,讓他們能夠在多租用戶環境中已啟用 Arc 的 Kubernetes 叢集上部署資料庫或應用程式執行個體等資源。
在本文中,您將了解如何在已啟用 Arc 的 Kubernetes 叢集上啟用自訂位置,以及如何建立自訂位置。
必要條件
安裝下列 Azure CLI 延伸模組的最新版本:
connectedk8s
k8s-extension
customlocation
az extension add --name connectedk8s az extension add --name k8s-extension az extension add --name customlocation
如果已安裝
connectedk8s
、k8s-extension
和customlocation
延伸模組,您可以使用下列命令更新至最新版本:az extension update --name connectedk8s az extension update --name k8s-extension az extension update --name customlocation
確認已完成
Microsoft.ExtendedLocation
的提供者註冊。輸入下列命令:
az provider register --namespace Microsoft.ExtendedLocation
監視註冊程序。 註冊最多可能需要 10 分鐘的時間。
az provider show -n Microsoft.ExtendedLocation -o table
註冊之後,
RegistrationState
狀態將會有Registered
值。
驗證您已有已啟用 Azure Arc 的 Kubernetes 連線叢集,並已將代理程式更新為最新版本。 確認將執行本文所述命令的機器上具有指向此叢集的
kubeconfig
檔案。
在叢集上啟用自訂位置
提示
自訂位置功能相依於叢集連線功能。 這兩項功能都必須在叢集中啟用,自訂位置才能運作。 若要啟用自訂位置功能,請遵循下列步驟:
如果您是以 Microsoft Entra 使用者身分登入 Azure CLI,請使用下列命令:
az connectedk8s enable-features -n <clusterName> -g <resourceGroupName> --features cluster-connect custom-locations
如果您在使用服務主體登入 Azure CLI 時執行上述命令,可能會看到下列警告:
Unable to fetch oid of 'custom-locations' app. Proceeding without enabling the feature. Insufficient privileges to complete the operation.
發生此警告是因為服務主體缺少必要權限,無法擷取 Azure Arc 服務所用自訂位置的 oid
(物件識別碼)。 若要避免此錯誤,請依照下列步驟執行:
透過使用者帳戶登入 Azure CLI。
執行下列命令來擷取自訂位置的
oid
(物件識別碼),其中--id
已預先定義並設定為bc313c14-388c-4e7d-a58e-70017303ee3b
:重要! 確實複製並執行命令,如下所示。 請勿將傳遞至
--id
參數的值取代為不同的值。az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
使用服務主體登入 Azure CLI。 執行下列命令以在叢集上啟用自訂位置功能,並針對
--custom-locations-oid
參數使用上一個步驟中的oid
(物件識別碼) 值:az connectedk8s enable-features -n <cluster-name> -g <resource-group-name> --custom-locations-oid <cl-oid> --features cluster-connect custom-locations
建立自訂位置
部署您想要在叢集上安裝的 Azure 服務執行個體的 Azure 服務叢集擴充功能:
-
注意
已啟用 Azure Arc 的資料服務叢集擴充功能支援沒有驗證的輸出 Proxy 和具有基本驗證的輸出 Proxy。 目前不支援預期受信任憑證的輸出 Proxy
-
取得已啟用 Azure Arc 的 Kubernetes 叢集的 Azure Resource Manager 識別碼,於稍後步驟中參考為
connectedClusterId
:az connectedk8s show -n <clusterName> -g <resourceGroupName> --query id -o tsv
取得叢集擴充功能 (已部署至已啟用 Azure Arc 的 Kubernetes 叢集上) 的 Azure Resource Manager 識別碼,於稍後步驟中參考為
extensionId
:az k8s-extension show --name <extensionInstanceName> --cluster-type connectedClusters -c <clusterName> -g <resourceGroupName> --query id -o tsv
藉由參考已啟用 Azure Arc 的 Kubernetes 叢集和延伸模組來建立自訂位置:
az customlocation create -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionId>
必要參數:
參數名稱 描述 --name, --n
自訂位置的名稱。 --resource-group, --g
自訂位置的資源群組。 --namespace
繫結至要建立的自訂位置叢集中的命名空間。 --host-resource-id
已啟用 Azure Arc 的 Kubernetes 叢集的 Azure Resource Manager 識別碼 (連線的叢集)。 --cluster-extension-ids
安裝在已連線叢集上的叢集擴充功能執行個體的 Azure Resource Manager 識別碼。 針對多個擴充功能,提供以空格分隔的叢集擴充功能識別碼清單 選擇性參數:
參數名稱 描述 --location, --l
Azure 中 Azure Resource Manager 資源自訂位置的位置。 如果未指定,則會使用已連線叢集的位置。 --tags
以空格分隔的標記清單,格式為 key[=value]
。 請使用 '' 來清除現有的標記。--kubeconfig
叢集的管理員 kubeconfig
。
顯示自訂位置的詳細資料
若要顯示自訂位置的詳細資料,請使用下列命令:
az customlocation show -n <customLocationName> -g <resourceGroupName>
列出自訂位置
若要列出資源群組中的所有自訂位置,請使用下列命令:
az customlocation list -g <resourceGroupName>
建立自訂位置
使用 update
命令新增 --tags
的新值,或將新的 --cluster-extension-ids
與自訂位置產生關聯,同時保留現有的標記值和相關聯的叢集擴充功能。
az customlocation update -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionIds>
修補自訂位置
使用 patch
命令來取代 --cluster-extension-ids
或 --tags
的現有值。 先前的值不會保留。
az customlocation patch -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionIds>
刪除自訂位置
若要刪除自訂位置,請使用下列命令:
az customlocation delete -n <customLocationName> -g <resourceGroupName>
疑難排解
如果自訂位置建立失敗,並出現錯誤 Unknown proxy error occurred
,請修改您的網路原則,以允許 azure-arc
命名空間內的 Pod 對 Pod 內部通訊。 請務必同時新增 azure-arc
命名空間,並納入已設定原則的無 Proxy 排除清單中。
下一步
- 使用叢集連線安全地連線至叢集。
- 繼續進行 Azure Arc 上的 Azure App Service,以取得安裝延伸模組、建立自訂位置,以及建立 App Service Kubernetes 環境的端對端指示。
- 為 Kubernetes 上的 Event Grid 建立 Event Grid 主題和事件訂閱。
- 深入了解目前可用的已啟用 Azure Arc 的 Kubernetes 延伸模組。