在這個教學中,你會學習如何使用 Service Connector 將部署在 AKS 的應用程式連接到 Azure SQL 資料庫。 您要完成下列工作:
- 建立 Azure SQL Database 資源
- 使用服務連接器在 AKS 叢集與資料庫之間建立連線。
- 更新您的容器
- 更新應用程式的程式碼
- 清理 Azure 資源。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 部署至 AKS 的應用程式。
-
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱開始使用 Azure Cloud Shell。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱 使用 Azure CLI 向 Azure 進行驗證。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能的詳細資訊,請參閱 使用和管理 Azure CLI 的擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
建立 Azure SQL Database
使用
az group create命令,建立資源群組以儲存您在本教學課程中建立的資源。az group create \ --name $RESOURCE_GROUP \ --location eastus依照指示在上一個步驟中建立的資源群組中建立 Azure SQL Database。 請記下本教學課程中使用的伺服器名稱、資料庫名稱和資料庫認證。
使用服務連接器在 AKS 中建立服務連線
登錄服務連接器和 Kube 設定資源提供者
使用 az provider register 命令登錄服務連接器和 Kube 設定資源提供者。
az provider register --namespace Microsoft.ServiceLinker
az provider register --namespace Microsoft.KubernetesConfiguration
提示
您可以使用 az provider show --namespace "Microsoft.ServiceLinker" --query registrationState 和 az provider show --namespace "Microsoft.KubernetesConfiguration" --query registrationState 命令來檢查這些資源提供者是否已登錄。 如果輸出為 Registered,則服務提供者已經登錄。
建立新連線
使用 Microsoft Entra 工作負載 ID,在 AKS 叢集與 SQL 資料庫之間建立服務連線
在 Azure 入口網站中,瀏覽至您的 AKS 叢集資源。
選取 設定>服務連接器>建立。
在 [基本] 索引標籤上,設定下列設定。
- [Kube 命名空間]:選取 [預設]。
- [服務類型]:選取 [SQL 資料庫]。
- [連線名稱]:使用服務連接器所提供的連線名稱,或輸入您自己的連線名稱。
- [訂用帳戶]:選取包含 Azure SQL 資料庫服務的訂用帳戶。
- [SQL Server]:選取您的 SQL Server。
- [SQL 資料庫]:選取您的 SQL 資料庫。
- [用戶端類型]:您用來連線至目標服務的程式碼語言或架構,例如:Python。
選取 [下一步:驗證]。 在 [ 驗證] 索引標籤上,選取 [工作負載識別 ],然後選擇一個 [使用者指派的受控識別]。
選取 [下一步:網路>][下一步:檢閱 + 在 Cloud Shell 上建立]。>
Cloud Shell 將會啟動並執行命令來建立連線。 您可能需要在命令處理期間確認一些組態變更。 成功執行命令之後,它會顯示連線資訊,而且您可以在 [服務連接器] 窗格中按兩下 [重新整理] 按鈕,以顯示最新的結果。
警告
Microsoft 建議您使用最安全的可用驗證流程。 這個程序描述的驗證流程需要在應用程式中具備極高的信任度,且伴隨著其他流程並未面臨的風險。 請僅在其他較安全的流程 (例如受控身分識別) 皆不具可行性的情況下,才使用這個流程。 選取驗證方法 工作負載 ID (建議) 。
使用 連接字串,在 AKS 叢集與 SQL 資料庫之間建立服務連線
在 Azure 入口網站中,瀏覽至您的 AKS 叢集資源。
選取 設定>服務連接器>建立。
在 [基本] 索引標籤上,設定下列設定。
- [Kube 命名空間]:選取 [預設]。
- [服務類型]:選取 [SQL 資料庫]。
- [連線名稱]:使用服務連接器所提供的連線名稱,或輸入您自己的連線名稱。
- [訂用帳戶]:選取包含 Azure SQL 資料庫服務的訂用帳戶。
- [SQL Server]:選取您的 SQL Server。
- [SQL 資料庫]:選取您的 SQL 資料庫。
- [用戶端類型]:您用來連線至目標服務的程式碼語言或架構,例如:Python。
選取 [下一步:驗證]。 在 [驗證] 索引標籤上,輸入您的資料庫使用者名稱和密碼。
選取 [下一步:網路]>[下一步:檢閱 + 建立]>[建立]。
部署成功之後,您可以在 [服務連接器] 窗格中檢視新連線的相關資訊。
更新您的容器
現在您已建立 AKS 叢集與資料庫之間的連線,您需要擷取連線秘密,並將其部署在您的容器中。
在 Azure 入口網站中,瀏覽至您的 AKS 叢集資源。 在 [設定] 底下,選取 [服務連接器]。
選取新建立的連線,然後選取 [YAML 程式碼片段]。 此動作會開啟一個面板,其中顯示服務連接器所產生的範例 YAML 檔案。
若要將連線秘密設定為容器中的環境變數,您有兩個選項:
使用提供的 YAML 範例程式碼片段直接建立部署。 程式碼片段包含醒目提示的區段,其中顯示將插入為環境變數的秘密物件。 選取 [套用] 繼續進行此方法。
或者,在 [資源類型] 下,選取 [Kube 工作負載],然後選取現有的 Kube 工作負載。 此動作會將新連線的秘密物件設定為所選工作負載的環境變數。 選取工作負載之後,請選取 [套用]。
更新應用程式的程式碼
最後一個步驟是,遵循下列指示,更新應用程式程式碼以使用環境變數。
清除資源
如果您之後不再需要依據本教學課程建立的資源,您可以藉由刪除 Azure 資源群組來移除它們。
使用 az group delete 命令刪除您的資源群組。
az group delete --resource-group $RESOURCE_GROUP
相關內容
請閱讀下列文章,以深入了解服務連接器的概念,以及其如何協助 AKS 連線到 Azure 服務: