无法为Cloud SQL设置高可用性

时间:2019-11-07 20:29:08

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

我正在尝试使用Deployment Manager创建Cloud SQL。

我的大多数配置除了settings.availabilityType之外都可以工作

jinja文件-可行

resources:
- name: dev-01
  type: gcp-types/sqladmin-v1beta4:instances
  properties:
    backendType: SECOND_GEN
    instanceType: CLOUD_SQL_INSTANCE
    region: europe-west1
    databaseVersion: POSTGRES_9_6
    settings: 
      tier: db-custom-1-3840
      storageAutoResize: true
      dataDiskSizeGb: PD_SSD
      dataDiskType: 10
      replicationType: SYNCHRONOUS
      failoverReplica:
        available: true
      backupConfiguration:
        enabled: true
      locationPreference:
        zone: europe-west1-b
      activationPolicy: ALWAYS

jinja文件-无效

resources:
- name: dev-01
  type: gcp-types/sqladmin-v1beta4:instances
  properties:
    backendType: SECOND_GEN
    instanceType: CLOUD_SQL_INSTANCE
    region: europe-west1
    databaseVersion: POSTGRES_9_6
    settings: 
      tier: db-custom-1-3840
      storageAutoResize: true
      dataDiskSizeGb: PD_SSD
      dataDiskType: 10
      replicationType: SYNCHRONOUS
      failoverReplica:
        available: true
      backupConfiguration:
        enabled: true
      locationPreference:
        zone: europe-west1-b
      activationPolicy: ALWAYS
      availabilityType: REGIONAL

我遇到错误... API调用无效...

EDIT#1

通过GUI,我可以一键添加HA,而无需任何现有的故障转移实例。

enter image description here

3 个答案:

答案 0 :(得分:2)

这是因为您正在尝试使用locationPreference部署HA配置。用于为Cloud SQL HA实例创建HA的gcloud命令仅需要区域和故障转移相关的详细信息。参见here

按照repo进行操作,您会发现一些不错的示例。

特别是this part of the code为您提供了要遵循的模板

答案 1 :(得分:1)

在此thread中,另一个用户与您有类似的问题。 值得一看,尤其是Jordi Miralles答案

有关其他信息,您应该查看GCP文档。

答案 2 :(得分:0)

关于编辑说明,区域可用性配置(用于PostgreSQL的配置)不需要故障转移实例,因为它基于区域持久性磁盘。有关docs的更多信息。

故障转移实例仅适用于MySQL实例,now considered legacy (and the docs imply it's going to be deprecated in 2020)支持与PostgreSQL相同的HA系统:regional persistent disks