技术文章和资源

技术文章(时间排序)

热门类别

Python PHP MySQL JDBC Linux

使用配置连接器创建 CloudSQL 实例

cloud computingkubernetesmysql

本指南将介绍 Google Cloud Platform 的配置连接器,这是一种将 GCP 服务公开为 Kubernetes 对象的工具。使用 Cloud SQL Auth 网关或直接连接私有 IP 地址,在 Google Kubernetes Engine 上运行的应用程序可以访问 Cloud SQL 实例。即使使用私有 IP 地址,通过 Cloud SQL 身份验证网关连接到 Cloud SQL 也是最佳选择。

配置连接器有什么用?

要从 Kubernetes 内部控制您的 Google Cloud 资源,您可以安装开源配置连接器。为了管理其基础架构,许多云原生软件开发人员使用各种配置系统、应用程序编程接口 (API) 和其他工具。这种混合的模糊性是导致生产速度减慢和代价高昂的错误的一个常见原因。借助 Kubernetes 的工具和 API,可以使用 Config Connector 配置各种 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。

Make a Copy of the Repository

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

启动远程状态地形化过程。它将在指定位置为远程状态容器设置数据存储。

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 CustomResource,并默认设置为命名空间模式。按照惯例等。ConfigConnector 的集群模式配置仍需要完成以下步骤。这些步骤将让您在命名空间模式下设置 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

如果配置连接器部署正确,结果看起来会像这样 -

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 实例连接页面网络部分下的"已批准网络"。

最后,提醒一下 - 您可能会遇到配置连接器发行说明中未记录的错误。如果您正在进行手动安装,则需要先升级配置连接,然后进行测试。

结论

此演示只是一次简单的尝试,旨在解释如何使用 GKE 集群部署 GCP 资产。您可以用 helm charts 替换 kubectl,然后使用 ArgoCD 部署 helm charts,并且可能还有许多其他途径可以实现此目的。

我们希望这些信息在您开始在 gitops 工作流程中使用 Config 连接时有用。


相关文章