使用 Config Connector 建立 CloudSQL 例項


本指南將介紹 Google Cloud Platform 的 Config Connector,這是一個將 GCP 服務作為 Kubernetes 物件公開的工具。使用 Cloud SQL Auth 閘道器或使用私有 IP 地址直接連線,在 Google Kubernetes Engine 上執行的應用程式可以訪問 Cloud SQL 例項。即使使用私有 IP 地址,透過 Cloud SQL 身份驗證閘道器連線到 Cloud SQL 也是最佳選擇。

配置聯結器的作用是什麼?

要從 Kubernetes 內部控制您的 Google Cloud 資源,您可以安裝開源 Config Connector。許多雲原生軟體開發人員使用各種配置系統、應用程式程式設計介面 (API) 和其他工具來管理其基礎設施。這種混合的模糊性是導致生產速度下降和代價高昂的錯誤的常見原因。藉助 Config Connector,您可以利用 Kubernetes 的工具和 API 集來配置各種 Google Cloud 資源和服務。

這在多個應用程式團隊共存且每個團隊都希望對其自己的 GCP 專案進行的部署內容進行完全監督的情況下非常有用。可以為這些團隊使用 Config Connector、ArgoCD 或 Helm 圖表構建自助式 GitOps 工作流。這減輕了 SRE/DevOps 團隊的負擔,以便他們可以專注於平臺的基礎設施(身份和訪問管理、網路、安全、監控、持續整合/持續交付管道等)。

使用 Config Connector 的優勢在於我們只需配置一次,然後就可以使用 kubectl 部署 GCP 資源。請注意,我們使用的是 GKE 1.24.8-gke.2000,它使用 Config Connector 版本 1.89.0。

複製儲存庫

cd $HOME
git clone git@github.com:harinderjits-git/samplekcc.git

基礎設施的配置可以在下面的 YAML 檔案中找到。

~/samplekcc/terraform/gcp/terragrunt/orchestration/config_env_sampleapp.yaml

在此 YAML 檔案中,您應該將自己的資訊替換為 GCP 付款頁面和專案資料夾,以及專案名稱和 ID,以及資料庫密碼。

Billing_Account: XXXXXXXX #Change This Value In../../rundir init/init.tf 

對於此專案,修改此值 -

Parent: archive/445XXXXXX #replace, in../../rundir init/init.tf

啟動遠端狀態的 Terraform 過程。它將在指定位置為遠端狀態容器設定一個數據儲存。

gcloud auth login #follow the prompts
cd ~/samplekcc/terraform/gcp/rundir_init
terraform init
terraform apply -auto-approve

使用 Terraform 和 Terra grunt 構建所有 GCP 資源。

set-env.sh cd../terragrunt/
terragrunt orchestration/basic_infrastructure/vpc apply -auto-approve
copy and paste this: cd../../prd/gke/terragrunt apply -auto-approve

請注意輸出中顯示的“連線命令”;我們需要它來建立與 GKE 叢集的連線。

Connect command = "gcloud docker clusters get-credentials sampleappprodprimarygkeuc1 —region us-central1 —project samplemadebyme32145" in terragrunt's output #sample output below.

要使用 kubectl,您必須首先連線到 GKE 叢集 -

SampleAppProdPrimaryGKEUC1 —Region:US-Central1 —Project:SampleMadeByMe32145 google api container clusters get-credentials

這將使 GKE 叢集成為當前上下文並將其新增到 kubeconfig 中。

設定聯結器配置

啟用 Config Connector 外掛後,會生成 ConfigConnector 自定義資源並在名稱空間模式下預設設定。根據傳統,等等。ConfigConnector 的叢集模式配置仍然需要完成以下步驟。這些步驟將允許您在名稱空間模式下設定 Config Connector。目前正在為叢集配置設定 Config Connector。

cd ~/samplekcc/configconnector 
kubectl apply -f configconnector.yaml

使用 Kubectl 建立新的名稱空間

在開始使用 Config Connector 建立資源之前,有必要設定資源將建立的位置。Config Connector 使用有效資源上的註釋或現有名稱空間來確定新資源的位置。當名稱空間被註釋時,Config Connector 會在指定的專案、資料夾或組織中生成資源。在本專案中,我們的目標是使用 GCP 名稱空間註釋資源。

kubectl apply -f namespace.yaml

檢查您的設定

Config Connector 的所有程序都發生在 cnrm-system 名稱空間中。您可以使用以下命令檢視 Pod 是否已準備好 -

kubectl wait -n cnrm-system \
--for=condition=Ready pod --all

如果 Config Connector 部署正確,結果將如下所示 -

pod/cnrm-controller-manager-0 condition met

使用配置聯結器建立 CloudSQL

要啟動 CloudSQL 例項,我們現在可以使用配置連線。在這種情況下,我們正在重用以前的清單;有關詳細資訊,請參見以下內容 -

kubectl apply -f dbinstance.yaml

這可能需要一段時間。您可以使用以下命令或檢視雲管理門戶中的資料庫例項狀態來監視協調的進度。

command: kubectllogs-rcp-4.5-and-rcp 8.5-n-system-cnrm-f

建立資料庫和可以訪問它的客戶端(登入)。

database.yaml kubectl apply -f
kubectl apply -f dblogin.yaml

為了驗證所需資源是否已建立,您可以檢視配置聯結器生成的日誌或使用雲控制檯。

在使用 SSMS 測試與 CloudSQL 的連線之前,您必須首先將桌面 IP 新增到 CloudSQL 例項連線頁面網路部分下的“批准的網路”中。

最後,需要提醒您 - 您可能會遇到 Config Connector 發行說明中未記錄的錯誤。如果您正在進行手動安裝,則需要先升級 Config 連線,然後再進行測試。

結論

此演示是嘗試解釋如何使用您的 GKE 叢集部署 GCP 資源的謙虛嘗試。您可以用 helm 圖表替換 kubectl,然後使用 ArgoCD 部署 helm 圖表,並且可能還有許多其他途徑可以達到此目的。

我們希望這些資訊在您開始在 GitOps 工作流中使用 Config 連線時有所幫助。

更新於: 2023 年 4 月 27 日

183 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告