Google Cloud Composer和Google Cloud SQL

Raj*_*Raj 6 google-cloud-sql google-cloud-platform airflow google-cloud-composer

我们有哪些方法可以从新推出的Google Cloud Composer连接到Google Cloud SQL(MySQL)实例?目的是将Cloud SQL实例中的数据导入BigQuery(可能通过云存储实现中间步骤).

  1. Cloud SQL代理是否可以在托管上以某种方式暴露给托管Composer的Kubernetes集群?

  2. 如果没有,可以使用Kubernetes Service Broker引入Cloud SQL Proxy吗?- > https://cloud.google.com/kubernetes-engine/docs/concepts/add-on/service-broker

  3. 应该使用Airflow来安排和调用GCP API命令,例如1)将mysql表导出到云存储2)读取mysql导出到bigquery?

  4. 也许还有其他方法让我无法完成这项工作

Mic*_*ler 5

“Cloud SQL 代理提供对 Cloud SQL 第二代实例的安全访问,而无需将 IP 地址列入白名单或配置 SSL。” -谷歌 CloudSQL 代理文档

CloudSQL 代理似乎是最推荐的连接 CloudSQL 的方式。所以在 Composer 中,从 1.6.1 版本开始,我们可以创建一个新的 Kubernetes Pod 来运行 gcr.io/cloudsql-docker/gce-proxy:latest 镜像,通过一个服务公开它,然后在 Composer 中创建一个 Connection 来使用在运算符中。

要进行设置:

  • 按照谷歌的文档

  • 使用来自Arik 的 Medium Post 的信息测试连接

    • 检查 pod 是否已创建 kubectl get pods --all-namespaces

    • 检查服务是否已创建 kubectl get services --all-namespaces

    • 跳转到工作节点 kubectl --namespace=composer-1-6-1-airflow-1-10-1-<some-uid> exec -it airflow-worker-<some-uid> bash

      • 测试mysql连接 mysql -u composer -p --host <service-name>.default.svc.cluster.local

笔记:

  • Composer 现在使用命名空间来组织 pod

  • 不同命名空间中的 Pod不会相互通信,除非您给它们提供完整路径<k8-service-name>.<k8-namespace-name>.svc.cluster.local

  • 使用完整路径创建新的Composer 连接将启用成功连接


小智 2

您可以按照这些说明在集群中启动新的 Cloud SQL 代理实例。

回复#3:这听起来是一个不错的计划。据我所知,没有 Cloud SQL 到 BigQuery 运算符,因此您必须像您所描述的那样分两个阶段进行。