教學課程:使用工作負載身分識別以服務連接器連線到 Azure Kubernetes Service (AKS) 中的 Azure 儲存體帳戶
了解如何在 AKS 叢集中建立 Pod,其會透過服務連接器的協助,使用工作負載身分識別與 Azure 儲存體帳戶交談。 在本教學課程中,您會完成下列工作:
- 建立 AKS 叢集和 Azure 儲存體帳戶。
- 使用服務連接器建立 AKS 叢集與 Azure 儲存體帳戶之間的連線。
- 複製可從 AKS 叢集與 Azure 儲存體帳戶交談的應用程式範例。
- 將應用程式部署至 AKS 叢集中的 Pod,並測試連線。
- 清除資源。
重要
AKS 內的服務連線目前為預覽狀態。 請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 安裝 Azure CLI,然後藉由使用 az login 命令來登入 Azure CLI。
- 安裝 Docker 和 kubectl 來管理容器映像和 Kubernetes 資源。
- 對容器和 AKS 有基本了解。 從準備 AKS 的應用程式開始。
- 對工作負載身分識別有基本了解。
建立 Azure 資源
為本教學課程建立資源群組。
az group create \ --name MyResourceGroup \ --location eastus
使用下列命令建立 AKS 叢集,或參考教學課程。 我們會建立服務連線和 Pod 定義,並將應用程式範例部署至此叢集。
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1
使用下列命令連線至叢集。
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
使用下列命令建立 Azure 儲存體帳戶,或參考教學課程。 這是連線至 AKS 叢集的目標服務,且應用程式範例會與其互動。
az storage account create \ --resource-group MyResourceGroup \ --name MyStorageAccount \ --location eastus \ --sku Standard_LRS
使用下列命令建立 Azure Container Registry,或參考教學課程。 登錄會裝載應用程式範例的容器映像,且會由 AKS Pod 定義取用。
az acr create \ --resource-group MyResourceGroup \ --name MyRegistry \ --sku Standard
然後,啟用匿名提取,以讓 AKS 叢集可以取用登錄中的映像。
az acr update \ --resource-group MyResourceGroup \ --name MyRegistry \ --anonymous-pull-enabled
使用下列命令建立使用者指派的受控識別,或參考教學課程。 我們會在建立服務連線時使用使用者指派的受控識別,以啟用 AKS 工作負載的工作負載身分識別。
az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
使用服務連接器 (預覽) 建立服務連線
使用 Azure 入口網站或 Azure CLI 建立 AKS 叢集與 Azure 儲存體帳戶之間的服務連線。
在 Azure 入口網站中開啟您的 Kubernetes 服務,然後從左側功能表中選取 [服務連接器]。
選取 [建立],然後填入設定,如下所示。 讓其他設定保留其預設值。
[基本] 索引標籤:
設定 選擇 描述 Kubernetes 命名空間 預設值 您在叢集中需要連線的命名空間。 服務類型 儲存體 - Blob 目標服務類型。 連線名稱 storage_conn 使用服務連接器所提供的連線名稱,或選擇您自己的連線名稱。 訂用帳戶 <MySubscription>
Azure Blob 儲存體目標服務的訂用帳戶。 儲存體帳戶 <MyStorageAccount>
您要與之連線的目標儲存體帳戶。 用戶端類型 Python 您用來連線到目標服務的程式碼語言或架構。 [驗證] 索引標籤:
驗證設定 選擇 描述 驗證類型 工作負載身分識別 服務連接器驗證類型。 使用者指派的受控識別 <MyIdentity>
需要使用者指派的受控識別,才能啟用工作負載身分識別。 建立連線之後,[服務連接器] 頁面會顯示新連線的相關資訊。
建立應用程式範例
複製範例存放庫:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
移至 Azure 儲存體的存放庫範例資料夾:
cd serviceconnector-aks-samples/azure-storage-workload-identity
組建和推送容器映像
使用 Azure CLI
az acr build
命令來組建映像,並將其推送至您的容器登錄。az acr build --registry <MyRegistry> --image sc-demo-storage-identity:latest ./
使用
az acr repository list
命令來檢視容器登錄中的映像。az acr repository list --name <MyRegistry> --output table
執行應用程式和測試連線
取代
azure-storage-identity
資料夾中pod.yaml
檔案的預留位置。- 將
<YourContainerImage>
取代為我們在最後一個步驟中組建的映像名稱,例如<MyRegistry>.azurecr.io/sc-demo-storage-identity:latest
。 - 將
<ServiceAccountCreatedByServiceConnector>
取代為建立連線之後,服務連接器所建立的服務帳戶。 您可以在 Azure 入口網站中檢查服務連接器的服務帳戶名稱。 - 將
<SecretCreatedByServiceConnector>
取代為建立連線之後,服務連接器所建立的祕密。 您可以在 Azure 入口網站中檢查服務連接器的祕密名稱。
- 將
使用
kubectl apply
命令,將 Pod 部署至您的叢集。 如果未安裝,請使用 az aks install-cli 命令,在本機安裝kubectl
。 命令會在 AKS 叢集的預設命名空間中建立名為sc-demo-storage-identity
的 Pod。kubectl apply -f pod.yaml
使用
kubectl
檢視 Pod,檢查部署是否成功。kubectl get pod/sc-demo-storage-identity.
使用
kubectl
檢視記錄,檢查是否已建立連線。kubectl logs pod/sc-demo-storage-identity
清除資源
如果您不需要重複使用您在本教學課程中建立的資源,請藉由刪除資源群組來刪除您建立的所有資源。
az group delete \
--resource-group MyResourceGroup
下一步
請閱讀下列文章,以深入了解服務連接器概念,以及其如何協助 AKS 連線到服務。