Looker PSC 北向区域内部 L7 ALB

1. 简介

在此 Codelab 中,您将创建一个 L7 区域级内部应用负载平衡器和 Private Service Connect 后端,以获得对 Looker 的北向访问权限。如需北向访问 Looker,必须将使用方 VPC 列入 Looker PSC 实例的许可名单。

Private Service Connect 是 Google Cloud 网络的一项功能,允许使用方从其 VPC 网络内部以私密方式访问托管式服务。同样,它允许托管式服务提供方在其各自的 VPC 网络中托管这些服务,并为其使用方提供专用连接。例如,当您使用 Private Service Connect 访问 Looker 时,您是服务使用方,而 Google 是服务提供方,如图 1 中突出显示的那样。

图 1。

145ea4672c3a3b14.png

南向访问(也称为反向 PSC)使使用方能够创建已发布的服务作为提供方,以允许 Looker 访问本地、VPC 中的端点、托管式服务和互联网。无论 Looker PSC 部署在何处,南向连接都可以部署在任何区域中,如图 2 中突出显示的那样。

图 2。

3edfcc67e195d082.png

学习内容

  • 网络要求
  • 更新 Looker 许可名单以进行北向访问
  • 在使用方 VPC 中创建 Private Service Connect 后端
  • Google 证书与自签名证书

所需条件

def88091b42bfe4d.png

2. 构建内容

您将建立一个列入许可名单的使用方网络 looker-psc-demo,以部署需要 Google 证书或自行管理的证书的区域级内部 L7 应用负载平衡器和 PSC 后端 NEG。如需了解详情,请查看 负载平衡器和证书摘要页面

3. 网络要求

以下是网络要求的细分:

组件

说明

VPC (looker-psc-demo)

自定义模式 VPC

PSC NEG 子网

用于为网络端点组分配 IP 地址

仅代理子网

每个负载平衡器的 代理 都会分配一个内部 IP 地址。从代理发送到后端虚拟机或端点的数据包具有来自仅代理子网的来源 IP 地址。

后端服务

后端服务充当负载平衡器与后端资源之间的桥梁。在本教程中,后端服务与 PSC NEG 相关联。

4. Codelab 拓扑

2f6bb87ef0e139b2.png

5. 设置和要求

自定进度的环境设置

  1. 登录 Google Cloud 控制台,然后创建一个新项目或重复使用现有项目。如果您还没有 Gmail 或 Google Workspace 账号,则必须创建一个

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • 项目名称是此项目参与者的显示名称。它是 Google API 尚未使用的字符串。您可以随时对其进行更新。
  • 项目 ID 在所有 Google Cloud 项目中是唯一的,并且是不可变的(一经设置便无法更改)。Cloud 控制台会自动生成一个唯一字符串;通常情况下,您无需关注该字符串。在大多数 Codelab 中,您都需要引用项目 ID(通常用 PROJECT_ID 标识)。如果您不喜欢生成的 ID,可以再随机生成一个 ID。或者,您也可以尝试自己的项目 ID,看看是否可用。完成此步骤后便无法更改该 ID,并且此 ID 在项目期间会一直保留。
  • 此外,还有第三个值,即部分 API 使用的项目编号,供您参考。如需详细了解所有这三个值,请参阅文档
  1. 接下来,您需要在 Cloud 控制台中启用结算功能,以便使用 Cloud 资源/API。运行此 Codelab 应该不会产生太多的费用(如果有的话)。若要关闭资源以避免产生超出本教程范围的结算费用,您可以删除自己创建的资源或删除项目。Google Cloud 新用户符合参与 300 美元免费试用计划的条件。

启动 Cloud Shell

虽然可以通过笔记本电脑对 Google Cloud 进行远程操作,但在此 Codelab 中,您将使用 Google Cloud Shell,这是一个在云端运行的命令行环境。

Google Cloud 控制台 中,点击右上角工具栏中的 Cloud Shell 图标:

55efc1aaa7a4d3ad.png

预配和连接到环境应该只需要片刻时间。完成后,您应该会看到如下内容:

7ffe5cbb04455448.png

这个虚拟机已加载了您需要的所有开发工具。它提供了一个持久的 5 GB 主目录,并且在 Google Cloud 中运行,大大增强了网络性能和身份验证功能。您在此 Codelab 中的所有工作都可以在浏览器中完成。您无需安装任何程序。

6. 准备工作

启用 API

在 Cloud Shell 中,确保项目 ID 已设置:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region

启用所有必要的服务:

gcloud services enable compute.googleapis.com

7. 使用方网络

在以下部分中,您将创建使用方网络,该网络将在 Looker PSC VPC 许可名单中更新。

VPC 网络

在 Cloud Shell 中,执行以下操作:

gcloud compute networks create looker-psc-demo --subnet-mode custom

创建子网

在 Cloud Shell 中,创建使用方网络端点组子网:

gcloud compute networks subnets create consumer-psc-neg-subnet --network looker-psc-demo --range 172.16.30.0/28 --region $region --enable-private-ip-google-access

在 Cloud Shell 中,创建内部应用负载平衡器子网:

gcloud compute networks subnets create consumer-ilb-subnet --network looker-psc-demo --range 172.16.40.0/28 --region $region --enable-private-ip-google-access

在 Cloud Shell 中,创建提供方区域级仅代理子网:

gcloud compute networks subnets create $region-proxy-only-subnet \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=$region \
  --network=looker-psc-demo \
  --range=10.10.10.0/24

8. 创建自定义网域

如需建立自定义网域,您需要执行以下步骤:

在以下示例中,looker.cosmopup.com 是自定义网域

5424ce99136d5b3a.png

OAuth 示例

以下是子网 looker.cosmopup.com 的授权来源和回调的 OAuth 凭据示例。

c7e5b8c7d2cc6a01.png

9. 证书

您可以创建 Compute Engine 证书或 Certificate Manager 证书。使用以下任一方法,使用 Certificate Manager 创建证书:

10. Looker VPC 许可名单

查看允许的 VPC

在以下部分中,您将使用 Cloud 控制台界面查看 Looker 允许的 VPC 列表。

在 Cloud 控制台中,前往:

Looker → Looker 实例 → 详细信息

以下示例中,“允许的 VPC”列表中没有条目:

ad33177a2d721ea7.png

更新允许的 VPC

将 looker-psc-demo 添加为允许的 VPC,以更新 Looker 实例来支持北向访问。

在 Cloud 控制台中,前往:

Looker → Looker 实例 → 修改

cbbc069688890b82.png

连接 → 允许的 VPC

确保选择部署了 looker-psc-demo 的项目,然后选择 VPC looker-psc-demo,然后点击“继续”。

dc931643e1b220a.png

3e26d16d83cceae9.png

验证允许的 VPC

查看更新后的“允许的 VPC”列表

在 Cloud 控制台中,前往:

Looker → Looker 实例 → 详细信息

e34664c867929c66.png

11. 创建 PSC 后端

Looker PSC 作为服务提供方生成服务连接 URI,服务使用方使用该 URI 部署端点和后端,以获得对 Looker 的北向访问权限。在以下步骤中,您将先确定 Looker PSC 服务连接 URI,然后在“使用方 VPC”中创建 Private Service Connect 网络端点组 (NEG) 后端。

确定 Looker PSC 服务连接

在 Cloud 控制台中,前往并复制服务连接 URI:

Looker → Looker 实例 → 详细信息

a253f94e946a1eef.png

创建 PSC 网络端点组

在 Cloud Shell 中,执行以下操作,确保更新 psc-target-service:

gcloud compute network-endpoint-groups create looker-northbound-neg \
    --network-endpoint-type=private-service-connect \
    --psc-target-service=[UPDATE WITH YOU LOOKER SERVICE ATTACHMENT URI] \
    --region=$region \
    --network=looker-psc-demo \
    --subnet=consumer-psc-neg-subnet

示例:

gcloud compute network-endpoint-groups create looker-northbound-neg \
    --network-endpoint-type=private-service-connect \
 --psc-target-service=projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183 \
    --region=$region \
    --network=looker-psc-demo \
    --subnet=consumer-psc-neg-subnet

验证 PSC 网络端点组创建

在 Cloud Shell 中,执行以下操作,确保 pscConnectionStatus 为 accepted:

gcloud compute network-endpoint-groups describe looker-northbound-neg --region=$region | grep -i pscConnectionStatus:

示例:

user@cloudshell$ gcloud compute network-endpoint-groups describe looker-northbound-neg --region=$region | grep -i pscConnectionStatus: 
  pscConnectionStatus: ACCEPTED

创建区域级内部应用负载平衡器

在以下步骤中,您将使用 Cloud 控制台创建区域级内部应用负载平衡器,同时将生成的证书与前端配置相关联。

在 Cloud 控制台中,前往:

网络服务 → 负载均衡 → 创建负载平衡器

e3474ca153d7c55a.png

选择以下选项:

c80afa6a28b6d922.png

创建后端配置

选择以下选项,并根据您的部署自定义环境:

  • 用于部署网络基础架构的区域
  • 网络:looker-psc-demo
  • 仅代理子网会根据您的区域和网络自动填充

115627dc54d7a582.png

b3eaa88dd02a95c1.png

cf519145f0259061.png

530527bc9273e002.png

路由规则

无需任何配置

53a80d74b3c7dd56.png

前端配置

29faa25397025fb4.png

538da2b4930d243b.png

bbc13e921681dd65.png

确保负载平衡器已启用并获取 IP 地址。

在 Cloud 控制台中,依次前往“网络服务”→“负载均衡”→“looker-ilb-alb”

abc7d02b4c951c73.png

12. DNS 解析

自定义网域的 DNS 解析可以是本地权威 DNS 解析,也可以是 Cloud DNS 权威 DNS 解析。在本教程中,我们将 Cloud DNS 定义为 Looker 自定义网域的权威服务器。如需启用本地到 GCP DNS 解析,需要启用 入站服务器政策。 创建入站服务器政策时,Cloud DNS 会在应用该服务器政策的 VPC 网络中创建入站服务器政策入口点。入站服务器政策入口点是从适用 VPC 网络中每个子网的主要 IPv4 地址范围获取的内部 IPv4 地址,但仅代理子网除外。

在以下部分中,将为 Looker 自定义网域 looker.cosmopup.com 和 A 记录创建专用 DNS 区域,其中包含负载平衡器 IP 地址。

13. 创建专用 DNS 区域

在 Cloud Shell 中,创建 Cloud DNS 专用区域。

gcloud dns --project=$projectid managed-zones create looker-cosmopup-dns --description="" --dns-name="looker.cosmopup.com." --visibility="private" --networks="https://compute.googleapis.com/compute/v1/projects/$projectid/global/networks/looker-psc-demo"

在 Cloud Shell 中,创建包含在前面步骤中获取的负载平衡器 IP 地址的 A 记录。

gcloud dns --project=$projectid record-sets create looker.cosmopup.com. --zone="looker-cosmopup-dns" --type="A" --ttl="300" --rrdatas="<insert-your-ip>"

示例:

gcloud dns --project=$projectid record-sets create looker.cosmopup.com. --zone="looker-cosmopup-dns" --type="A" --ttl="300" --rrdatas="172.16.20.7"

接下来,必须在 looker-psc-demo VPC 和本地网络之间配置混合网络(例如 Interconnect、HA-VPN),以启用连接。

以下是在本地建立混合 NEG 连接所需的步骤:

  • 选择网络连接产品 | Google Cloud
  • 在采用 VPC 对等互连的 hub 和 spoke 架构中,混合 NEG 部署在与 Cloud Router (hub) 相同的 VPC 中
  • 确保更新 本地防火墙 以适应仅代理子网范围,因为此子网充当与本地工作负载通信的来源 IP 地址
  • 使用入站转发 IP 地址更新本地 DNS,作为 looker.cosomopup.com 的 DNS 解析器

访问 Looker 界面

现在负载平衡器已正常运行,您可以通过网络浏览器访问自定义 Looker 网域。请务必注意,您可能会遇到警告,具体取决于您使用的证书类型,例如不受信任的证书与受信任的证书。

以下是访问 Looker 自定义网域 looker.cosmopup.com(获得对 Looker 界面的北向访问权限)的示例(不受信任的证书):

ae43d0d0d7136044.png

14. 清理

从单个 Cloud Shell 终端中删除实验组件:

gcloud compute forwarding-rules delete regional-internal-alb-fr --region=$region -q

gcloud compute target-https-proxies delete regional-internal-alb-target-proxy --region=$region -q

gcloud compute url-maps delete regional-internal-alb --region=$region -q

gcloud compute backend-services delete looker-psc-neg-backend-svc --region=$region -q

gcloud compute addresses delete regional-alb-static-ip --region=$region -q

gcloud compute network-endpoint-groups delete looker-northbound-neg --region=$region -q

gcloud compute networks delete looker-psc-demo -q

15. 恭喜

恭喜!您已成功配置并验证了使用客户网域和区域级内部应用负载平衡器与 Looker 的北向连接。

您创建了使用方基础架构,了解了如何创建 PSC NEG、自定义网域,并了解了不同的证书选项。这么多令人兴奋的内容,让您开始使用 Looker。

Cosmopup 认为 Codelab 非常棒!

c911c127bffdee57.jpeg

后续操作

查看下列 Codelab…

延伸阅读和视频

参考文档