Skip to content

q #193

@aibangjuxin

Description

@aibangjuxin

帮我看一下下面这个方案怎么实现

1 总体目标

希望实现一个 跨 Project 的 API 访问架构:

A Project (入口层)

Global Load Balancer

PSC NEG (Consumer)

B Project Service Attachment (Producer)

Internal Load Balancer

Backend Service (GKE / VM / MIG)

核心目标:

让 A Project 的 GLB 通过 PSC 访问 B Project 的私有服务。

2 当前网络环境

网络结构包含 两个 Project 和两种网络类型。

A Project
• 部署 Global Load Balancer
• 使用 Shared VPC
• 作为 PSC Consumer

A Project
Shared VPC
└── GLB
└── PSC NEG

B Project
• 有自己的 Private VPC
• 部署业务服务
• 作为 PSC Producer

B Project
Private VPC
└── Service Attachment
└── Internal Load Balancer
└── Backend (GKE / VM)

3 想解决的问题

希望 替换当前的跨 Project 访问方式。

当前方案

你已经实现:

GLB

NON_GCP_PRIVATE_IP_PORT NEG

ILB IP

Backend

特点:
• 直接访问 IP + Port
• Producer IP 暴露
• Producer 无法控制 consumer

目标方案

你希望改成:

GLB

PSC NEG

Service Attachment

ILB

Backend

特点:
• 访问 Service
• 不暴露 backend IP
• Producer 可以控制访问权限

4 核心问题

在实现这个架构时,主要在确认 PSC 的依赖关系和创建条件。

你重点关注的问题包括:

1 PSC NEG 创建条件

你想确认:
• 是否需要 network
• 是否需要 subnet
• 是否必须在 Shared VPC

2 Producer Service Attachment 条件

你想理解:
• 是否必须在 Shared VPC
• 是否可以在 Private VPC
• 是否必须有 PSC NAT subnet

3 跨 Project 访问机制

想确认:

GLB (Shared VPC)

PSC NEG

B Project Private VPC Service Attachment

是否 官方支持并可行。

4 PSC 与当前方案对比

想弄清楚:

NON_GCP_PRIVATE_IP_PORT NEG

PSC NEG

之间的区别:
• 网络依赖
• 安全性
• 架构设计

5 最终目标架构


GLB (A Project Shared VPC)

Cloud Armor

Backend Service

PSC NEG

Service Attachment (B Project)

Internal Load Balancer

Backend Service

并具备:

能力 目标
跨 Project 访问 ✔
不暴露 backend IP ✔
Producer 控制 consumer ✔
服务级别隔离 ✔

6 需求一句话总结

你的需求可以总结为:

在 A Project 的 Shared VPC 中部署 GLB,并通过 PSC NEG 作为 Consumer,访问 B Project Private VPC 中通过 Service Attachment 发布的内部服务。

7 真实关注点(更深层)

从你问的问题来看,你真正想搞清楚的是 PSC 的三个核心机制:

1️⃣ 网络归属机制

PSC NEG 不需要 network / subnet

2️⃣ Producer 网络要求

Service Attachment 必须绑定 ILB + PSC subnet

3️⃣ 跨 VPC 通信机制

Consumer VPC ≠ Producer VPC

PSC 会自动建立连接。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions