Google Cloud-使用Deployment Manager进行CloudSQL的私人服务连接

时间:2019-07-15 13:55:57

标签: google-cloud-platform google-deployment-manager

我正在尝试使用Deployment Manager自动化系统的部署。本质上,它包括:

  • 一个运行代理服务器的计算实例
  • 第二个运行应用程序本身的计算实例(仅专用IP)
  • 托管数据库(MySQL)的CloudSQL实例

在现有环境中,数据库配置有私有IP地址和网络中的私有服务访问权限,以便计算实例可以通过其私有IP访问数据库。

我设法使2个实例和CloudSQL实例运行,但是我正在努力在SQL实例上设置私有IP。我具有以下优势:

    - name: database
      type: sqladmin.v1beta4.instance
      properties:
        backendType: SECOND_GEN
        instanceType: CLOUD_SQL_INSTANCE
        region: {{ properties["region"] }}
        databaseVersion: {{ properties["dbType"] }}
        settings:
          tier: db-n1-standard-1
          dataDiskSizeGb: 10
          dataDiskType: PD_SSD
          storageAutoResize: true
          replicationType: SYNCHRONOUS
          locationPreference:
            zone: {{ properties['zone']}}
          ipConfiguration:
            privateNetwork: {{ properties["network"] }}

但是,当我尝试构建它时,收到错误消息:

  

无法创建子网。请创建服务网络   与服务“ servicenetworking.googleapis.com”的连接   消费者项目再次“网络”

我尝试浏览文档以找到如何使用Deployment Manager创建此连接,但是我很茫然!我可以创建一个用于对等的专用地址范围:

    - name: google-managed-services-<network_name>
      type: compute.beta.globalAddress
      properties:
        network: $(ref.<network_name>.selfLink)
        purpose: VPC_PEERING
        addressType: INTERNAL
        prefixLength: 16

这似乎正确地为私人服务链接创建了保留,但我找不到难题的最后一部分,即与Google网络的实际对等连接。该文档建议我需要的CLI调用是:

> gcloud services vpc-peerings connect 
    --service=servicenetworking.googleapis.com 
    --ranges=[RESERVED_RANGE_NAME] 
    --network=[VPC_NETWORK] 
    --project=[PROJECT_ID]

但是据我所知,Deployment Manager不支持此API。

以前有没有人成功完成过这种自动化的设置?当然,我可能会错过一些指向相关文档的指针!

2 个答案:

答案 0 :(得分:0)

Deployment Manager当前不支持servicenetworking.googleapis.com,也不支持GCP-type,因此目前无法通过DM完成。我建议为其创建功能请求,因为它是一个相对较新的API。

答案 1 :(得分:0)

在设置https://cloud.google.com/sql/docs/mysql/configure-private-ip#configure-access

之后,以下配置对我有用
  ipConfiguration:
    privateNetwork: "internal"
    ipv4Enabled: false
    authorizedNetworks: null