Looker PSC 区域级外部 L7 ALB

1. 简介

在此 Codelab 中,您将创建一个第 7 层区域应用负载平衡器和 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.

259493afd914f68b.png

学习内容

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

所需条件

def88091b42bfe4d.png

2. 您将构建的内容

您将建立一个许可名单中的使用方网络 looker-psc-demo,以部署需要 Google 证书或自签名证书的区域级外部 L7 应用负载平衡器和 PSC 后端 NEG。无论采用哪种方法,都需要使用与 Looker 中定义的自定义网域匹配的已注册网域。

3. 网络要求

以下是网络要求的细分:

组件

说明

VPC (looker-psc-demo)

自定义模式 VPC

PSC NEG 子网

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

代理专用子网

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

后端服务

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

4. Codelab 拓扑

7f06f9b9876f76c4.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 $region-proxy-only-subnet \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=$region \
  --network=looker-psc-demo \
  --range=10.10.10.0/24

预留负载均衡器的 IP 地址

在 Cloud Shell 中,为负载平衡器预留外部 IP 地址:

gcloud compute addresses create regional-alb-static-ip  \
   --region=$region \
   --network-tier=STANDARD

在 Cloud Shell 中,查看预留的 IP 地址:

gcloud compute addresses describe regional-alb-static-ip --region=us-central1 | grep -i address:

输出示例:

user@cloudshell$ gcloud compute addresses describe regional-alb-static-ip --region=us-central1 | grep -i address: 
address: 35.208.202.244

8. 创建自定义网域

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

自定义网域示例

自定义域名 looker.cosmopup.com 是与之前定义的静态 IP 地址 (regional-alb-static-ip) 的 A 记录关联的公共 DNS 子网。请参阅从用于验证 DNS 查找的终端截取的屏幕截图。

6be44a9b2536e3f4.png

接下来,使用子网域 looker.cosmopup.com 创建客户网域

5424ce99136d5b3a.png

OAuth 示例

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

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,供服务使用方用于部署端点和后端,以便获得对 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 已被接受:

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

选择以下选项:

63c2e656953444f2.png

创建前端配置

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

  • 部署网络基础架构时使用的区域
  • 系统会根据您的区域自动填充代理专用子网
  • 根据您选择的区域,系统会提供之前定义的静态 IP

a1c24bd4650b27d3.png

选择“证书”后,系统会下拉使用现有证书或新证书的选项:

aac196a6fa1ee3d5.png

上传您的证书和私钥,然后选择“创建”:

64a390bda0c9c3f1.png

选择“完成”以完成前端配置:

758a1921e3020854.png

创建后端配置

选择以下选项:

e9bf17b1277bd597.png

af3b4a59864b15bc.png

6c784cc0169c892b.png

ba3bf9fa7d3497a5.png

创建路由规则

选择以下选项(默认选项):

8884421f10a50ce0.png

检查并最终确定

验证配置,然后选择“创建”:

bdf5793ba8f46bb9.png

负载平衡器现已启用:

61adc0509f07ab15.png

访问 Looker 界面

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

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

ae43d0d0d7136044.png

12. 清理

在一个 Cloud Shell 终端中删除实验组件

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

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

gcloud compute url-maps delete regional-external-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

13. 恭喜

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

您已创建了使用方基础架构,了解了如何创建 PSC NEG、自定义网域,并了解了不同的证书选项。有如此多的令人兴奋的事情可帮助您上手使用 Looker。

Cosmopup 认为 Codelab 很棒!

c911c127bffdee57.jpeg

后续操作

查看下列 Codelab…

深入阅读和视频

参考文档