标签: google-cloud-sql

我在做 Google Cloud 部署错了吗?

我以前使用过 Heroku 和 AWS,现在正在使用 App Engine 和 Cloud SQL (Postgres) 在 Google Cloud 平台上设置服务。

我们尝试使用 12 要素原则构建应用程序。

事实证明,设置是如此乏味,以至于我开始怀疑我是否只是从根本上错过了某些东西。

以下是让我感到困惑的事情:

  1. 鼓励将密码写入以源代码管理 (app.yaml) 结尾的文件中。
  2. 需要破解加载环境变量的解决方法(如果我不希望它们致力于源代码控制)。
  3. 找到连接到云 sql 实例我需要一行引用 app.yaml 中的特定实例 - 所以现在我需要 app.staging.yaml 和 app.production.yaml ?
  4. 找到那条线似乎只支持 1 个数据库实例,如果我们希望应用程序连接到 2 个数据库,则不清楚是否有支持。

我是否错过了服务器管理方面的一些重大发展,这些发展已成为最佳实践?刚刚发现#3 和#4 后,我真的开始认为我一定在我的设置中做了一些根本性的错误。我有没有?

google-app-engine google-cloud-sql google-cloud-platform

6
推荐指数
1
解决办法
164
查看次数

通过 VPN 隧道访问 Google Cloud SQL

我们有一个从办公室到 Google Cloud 的 VPN 隧道。它工作正常,我们能够访问虚拟机和容器(kubernetes)。

问题是无法使用此隧道访问 SQL 实例。您可以跳过虚拟机实例,但无法直接连接。显然,问题在于 SQL 实例没有直接连接到 VPC 子网。我们尝试在 VPC 的“Cloud Router”上强制路由,但没有成功。我们尝试为所有 VPC 范围添加“允许所有”防火墙规则,但事实并非如此。

知道如何通过 VPN 隧道到达 SQL 实例吗?

google-cloud-sql google-cloud-platform google-cloud-vpn

6
推荐指数
1
解决办法
4413
查看次数

无法通过私有 IP 从 GKE 连接到 Cloud SQL Postgres

我无法使用数据库的私有 IP 从 GKE 集群访问运行 Postgres 的 Cloud SQL 实例。我找到的所有文档都建议使用支持 VPC 的集群来完成此操作,但我仍然无法访问数据库。

具体来说,我可以从集群中的节点访问数据库,但我无法从节点上的容器内访问数据库,除非我使用主机的网络运行 docker 容器。这让我相信我对 GCP VPC 和 Kubernetes 的网络组件如何相互交互存在误解。

专有网络

我的 VPC 有一个子网和两个次要范围:

IP 范围:10.0.0.0/16
次要范围 - pod: 10.1.0.0/16
次要范围 - 服务: 10.2.0.0/16

这是使用以下 Terraform 配置创建的:

resource "google_compute_subnetwork" "cluster" {
  ip_cidr_range            = "10.0.0.0/16"
  name                     = "cluster"
  network                  = google_compute_network.vpc.self_link

  secondary_ip_range {
    ip_cidr_range = "10.1.0.0/16"
    range_name    = "pods"
  }

  secondary_ip_range {
    ip_cidr_range = "10.2.0.0/16"
    range_name    = "services"
  }
}
Run Code Online (Sandbox Code Playgroud)

数据库

我的云 SQL 数据库运行 Postgres 11 并配置为仅允许通过私有 IP 进行连接。我已与一组全局计算地址建立了对等连接,以允许从我的 VPC …

google-cloud-sql google-cloud-platform google-kubernetes-engine vpc-peering

5
推荐指数
1
解决办法
2993
查看次数

Google Cloud SQL 授权 Auto Scale Instance Groups

我有一个使用 Auto Scaling 和负载平衡设置的实例组。我也在 MySQL 服务器上使用 Google Cloud SQL。

每当实例组向上扩展并添加另一个实例时,该实例都会获得一个新的 IP 地址。问题是该实例不再具有访问 Google SQL 实例的权限(因为 SQL 实例需要预先配置授权网络)。我该怎么办?

我目前通过将以下 IP 添加到 SQL 管理器中的授权 IP 来接受大多数 IP 到我的 SQL 服务器: 100.0.0.0/6 104.0.0.0/5 112.0.0.0/4

google google-compute-engine google-cloud-sql google-cloud-platform

4
推荐指数
1
解决办法
2934
查看次数

使用来自 GKE 的私有 IP 连接到 Cloud SQL Postgres 时出现问题

我遵循的步骤:

1.创建VPC网络

gcloud compute networks create stg-vpc \ --subnet-mode custom

2. 为这个网络的 VPC Peering 创建 IP 范围

gcloud beta compute addresses create google-managed-services-stg-vpc \ --global \ --purpose=VPC_PEERING \ --description="peering range for psql" \ --addresses=10.20.0.0 \ --prefix-length=16 \ --network=stg-vpc

3. 为 Cloud SQL Postgres 实例分配私有 IP

在 Cloud SQL Web 控制台中,我创建了一个新的 Postgres 实例。在连接选项中,我启用了私有 IP,并将其配置stg-vpc为 IP 范围google-managed-services-stg-vpc

这将创建具有 IP 的 Cloud SQL Postgres 实例10.20.0.3

4.为GKE集群创建子网

gcloud compute networks subnets create stg-vpc-us-central1 \ …

google-cloud-sql google-cloud-platform google-kubernetes-engine vpc-peering

4
推荐指数
1
解决办法
2577
查看次数

如何从 Google Cloud SQL 调用 pg_dump

我正在寻找一种解决方案来备份我的 Cloud SQL 架构(和 Cloud Storage 文件)。

起初,我尝试使用 Cloud Scheduler 调用 googleapi ( https://cloud.google.com/sql/docs/postgres/import-export/exporting ) 以导出数据库。问题是我需要特定的备份参数,并且需要导出 PostgreSQL 数据库中的特定模式。我的每个客户都有一个模式,我希望能够在不恢复整个数据库的情况下恢复模式。Googleapis 似乎还不支持导出特定模式,这就是我想直接调用 pg_dump 的原因。

在 Cloud SQL 中使用自动备份也存在同样的问题。我无法恢复数据库中的特定架构,并且需要将备份保留至少一个月。

但是,我还没有找到使用云函数等调用 pg_dump 的方法。所以目前我正在考虑使用我自己的 Windows 10 笔记本电脑来调用 pg_dump 并在 Windows 中设置日常任务。我更愿意使用 Google Cloud,而不是我自己的笔记本电脑。

如果有人对如何构建备份基础设施有任何想法,我们将不胜感激。

postgresql backup export google-cloud-sql google-cloud-platform

4
推荐指数
1
解决办法
7458
查看次数

Centos7 systemctl启动单元未找到

我四处寻找,并竭尽全力找出为什么 systemctl 无法启动我的单元。

\n\n

我正在尝试将 GCP 的 cloud-sql-proxy 作为 systemd 服务启动。这就是我的cloud-sql-proxy.service样子。

\n\n
[Install]\nWantedBy=multi-user.target\n\n[Unit]\nDescription=Cloud SQL Proxy\nRequires=networking.service\nAfter=networking.service\n\n[Service]\nType=simple\nWorkingDirectory=/opt\nExecStart=/opt/cloud_sql_proxy -instances=pupa=tcp:5432 -credential_file=/etc/pupa-240309-5336639b0c06.json\nRestart=always\nStandardOutput=journal\nUser=root\n
Run Code Online (Sandbox Code Playgroud)\n\n

我跑sudo systemctl enable cloud-sql-proxy成功了。然后当我执行时sudo systemctl start cloud-sql-proxy.service失败并显示以下消息:

\n\n
Failed to start cloud-sql-proxy.service: Unit not found.\n
Run Code Online (Sandbox Code Playgroud)\n\n

以下是更多信息:

\n\n
$ ll -al /etc/systemd/system/cloud-sql-proxy.service\n-rw-r--r--. 1 root root 327 May 22 10:56 /etc/systemd/system/cloud-sql-proxy.service\n\n$ sudo systemctl list-unit-files\n...\ncloud-sql-proxy.service                       enabled\n...\n\n$ systemctl status cloud-sql-proxy\n\xe2\x97\x8f cloud-sql-proxy.service - Cloud SQL Proxy\n   Loaded: loaded (/etc/systemd/system/cloud-sql-proxy.service; enabled; vendor preset: disabled)\n   Active: failed (Result: resources) since Sun 2019-05-19 …
Run Code Online (Sandbox Code Playgroud)

systemctl centos7 google-cloud-sql

2
推荐指数
1
解决办法
5万
查看次数