共享 VPC 连接器

Share VPC connector

我正在关注这篇文章[1] 以获取我的云 运行 实例的固定 IP 地址,但我的项目已经使用云内存存储 (Redis),它需要我已经使用的 VPC 无服务器连接器。

这是我的 Redis 无服务器连接器

gcloud beta compute networks vpc-access connectors list --region us-central1
CONNECTOR_ID         REGION       NETWORK  IP_CIDR_RANGE  SUBNET  SUBNET_PROJECT  MACHINE_TYPE  MIN_INSTANCES  MAX_INSTANCES  STATE
serveless-connector  us-central1  default  10.8.0.0/28                            e2-micro      2              3              READY

然后我使用以下命令行进行部署

gcloud beta run deploy service --vpc-connector=serveless-connector...

但是在文档中,似乎需要另一个云上的 VPC 连接器 运行,才能获得出站 NAT。

有什么方法可以通过 VPC 连接器 AND 静态 IP 地址获取 Redis?

更新

如果我运行

gcloud compute networks subnets create subnet \
--range=10.8.0.0/28 --network=default --region=us-central1 --project ${PROJECT_ID} 

我收到错误:

 - Invalid IPCidrRange: 10.8.0.0/28 conflicts with existing subnetwork 'aet-uscentral1-serveless--connector-sbnt' in region 'us-central1'.

1 - https://cloud.google.com/run/docs/configuring/static-outbound-ip

将正确的解决方案发布为社区 wiki。 我删除了以前的连接器并使用教程重新创建并成功了!这是我的 steps.

```shell
gcloud compute networks subnets create subnet \
  --range=10.8.0.0/28 \
  --network=default \
  --region=us-central1 \
  --project=${PROJECT_ID} 
```

```shell
gcloud compute networks vpc-access connectors create vpc-access-connector \
  --region=us-central1 \
  --subnet-project=${PROJECT_ID} \
  --subnet=subnet \
  --project=${PROJECT_ID}
```

```shell
gcloud compute routers create router \
  --network=default \
  --region=us-central1 \
  --project=${PROJECT_ID}
```

```shell
gcloud compute addresses create ipddr0 --region=us-central1 --project=${PROJECT_ID}
```

```shell
gcloud compute routers nats create nat \
  --router=router \
  --region=us-central1 \
  --nat-custom-subnet-ip-ranges=subnet \
  --nat-external-ip-pool=ipddr0 \
  --project=${PROJECT_ID}
```