使用拖管实例组设置 Cloud CDN
https://cloud.google.com/cdn/docs/setting-up-cdn-with-mig
Cloud CDN 利用 Google Cloud 全球外部 HTTP(S) 负载平衡器来提供路由、运行状况检查和任播 IP 支持。全球外部 HTTP(S) 负载平衡器可以有多个后端实例类型,并且您可以选择要为哪些后端(也称为源站)启用 Cloud CDN。本设置指南介绍如何创建一个启用了 Cloud CDN 的简单的外部 HTTP 负载平衡器。负载平衡器具有以下资源:
- 默认 Virtual Private Cloud (VPC) 网络
- Compute Engine 托管实例组
- 默认网址映射
- 预留的外部 IP 地址
如果您使用的是 GKE,则通常由 Kubernetes Ingress 控制器配置负载平衡器。有关详情,请参阅配置 Ingress 以进行外部负载平衡。注意:如果您已经拥有包含一个或多个实例组的外部 HTTP(S) 负载平衡器,则可以跳至本指南的启用 Cloud CDN 部分。
图中的事件顺序如下所示:
- 1.客户端向转发规则中定义的外部 IPv4 地址发送内容请求。
- 2.负载平衡器检查是否可以从缓存中处理请求。如果可以,负载平衡器将请求的内容从缓存中传送出去。否则,继续进行处理。
- 3.转发规则将请求定向到目标 HTTP 代理。
- 4.目标代理使用网址映射中的规则确定单个后端服务接收所有请求。
- 5.负载平衡器确定后端服务只有一个实例组,并将请求定向到该组中的虚拟机实例。
- 6.该虚拟机提供用户请求的内容。
为完成本指南中的步骤,您必须拥有在项目中创建 Compute Engine 实例、防火墙规则和预留 IP 地址的权限。您必须拥有项目的 Owner 或 Editor 角色,或者必须拥有以下 Compute Engine IAM 角色。
任务 | 所需角色 |
创建实例 | |
添加和移除防火墙规则 | |
创建负载平衡器组件 | |
创建项目(可选) |
如需了解详情,请参阅以下指南:
- 1.在 Google Cloud Console 中,转到实例组页面。
- 2.点击创建实例组。
- 3.在左侧选择新建代管实 例组。
- 4.对于名称,输入
lb-backend-example
。 - 5.在位置下方,选择单个地区。
- 6.对于区域,选择您的首选区域。本示例使用
us-east1
。 - 7.对于区域,选择 us-east1-b。
- 8.在实例模板下,选择创建新的实例模板。
- 9.对于名称,输入
lb-backend-template
。 - 10.确保启动磁盘已设置为 Debian 映像,例如 Debian GNU/Linux 9 (stretch)。本文中的说明使用仅 Debian 支持的命令,例如
apt-get
。 - 11.在管理、安全、磁盘、网络、单独租用下的管理标签页上,将以下脚本插入到启动脚本字段。#! /bin/bashapt-get updateapt-get install apache2 -ya2ensite default-ssla2enmod sslvm_hostname="$(curl -H "Metadata-Flavor:Google" \http://169.254.169.254/computeMetadata/v1/instance/name)"echo "Page served from: $vm_hostname" | \tee /var/www/html/index.html
- 12.在网络标签页上,添加网络标记
allow-health-check
。 - 13.点击保存并继续。
- 14.在自动扩缩模式下,选择不自动调节。
- 15.在实例数下,输入
2
。 - 16.如需创建新的实例组,请点击创建。
- 1.在 Google Cloud Console 中,转到防火墙页面。
- 2.点击创建防火墙规则以创建第二条防火墙规则。
- 3.对于名称,输入
fw-allow-health-check
。 - 4.在网络下,选择 默认。
- 5.在目标下,选择指定的目标标记。
- 6.使用
allow-health-check
填充目标标记字段。 - 7.将来源过滤条件设置为 IP ranges。
- 8.将来源 IP 地址范围设置为
130.211.0.0/22
和35.191.0.0/16
。 - 9.在协议和端口下,选择指定的协议和端口。
- 10.选中 tcp 复选框,然后输入端口号
80
。 - 11.点击创建。
- 1.在 Google Cloud Console 中,转到外部 IP 地址页面。
- 2.如需预留 IPv4 地址,请点击预留静态地址。
- 3.对于名称,输入
lb-ipv4-1
。 - 4.将网络服务层级设置为优质。
- 5.将 IP 版本设置为 IPv4。
- 6.将类型设置为全局。
- 7.点击保留。
- 1.在 Google Cloud Console 中,转到负载平衡页面。
- 2.点击创建负载平衡器。
- 3.在 HTTP(S) 负载平衡下,点击开始配置。
- 4.选择从互联网到我的虚拟机,然后点击继续。
- 5.在负载平衡器名称中输入
web-map-http
。 - 6.点击后端配置。
- 7.在创建或选择后端服务和后端存储分区下,选择后端服务 > 创建后端服务。
- 8.为您的后端服务添加名称,例如
web-backend-service
。 - 9.在协议下,选择 HTTP。
- 10.在后端 > 新后端 > 实例组中,选择您的实例组
lb-backend-example
。 - 11.保留其他默认设置。
- 12.在运行状况检查下,选择创建运行状况检查,然后为您的运行状况检查添加一个名称,例如
http-basic-check
。 - 13.将协议设置为 HTTP,然后点击保存并继续。
- 14.选择启用 Cloud CDN。
- 15.保留其他默认设置。
- 16.点击创建。
在主机和路径规则中,保留默认设置。
在前端配置中,使用以下值:
- 1.将协议设置为 HTTP。
- 2.将 IP 地址设置为您之前创建的
lb-ipv4-1
。 - 3.确保将端口设置为 80 以允许 HTTP 流量。
- 4.点击完成。
点击检查并最终确定。
配置完负载平衡器后,点击创建。
等待负载平衡器完成创建。
点击负载平衡器的名称。
在负载平衡器详情屏幕上,记下负载平衡器的 IP:端口。
如果您在创建后端服务时尚未启用 Cloud CDN,请立即通过更新后端服务执行此操作:
gcloud compute backend-services update-backend web-backend-service \
--enable-cdn
重要提示:要使 Cloud CDN 缓存来自后端的响应,您需要为每个响应设置有效的缓存指令。例如
Cache-Control: max-age=3600, public
。- 1.在 Google Cloud Console 中,转到负载平衡页面。
- 2.点击您刚刚创建的负载平衡器。
- 3.在后端部分中,确认虚拟机运行状况良好。运行状况良好列应该会填充相应信息,指示两个虚拟机运行状况都良好 (
2/2
)。否则,请先尝试重新加载页面。Cloud Console 可能需要一些时间才能指示虚拟机运行状况良好。如果几分钟后后端似乎仍运行状况不佳,请检查防火墙配置以及分配给后端虚拟机的网络标记。 - 4.在 Cloud Console 显示后端实例运行状况良好后,您可以使用网络浏览器转到
http://IP_ADDRESS
来测试您的负载平衡器。将IP_ADDRESS
替换为负载平衡器的 IP 地址。 - 5.您的浏览器应该会呈现一个页面,其中的内容显示提供该页面的实例的名称以及其地区(例如,
Page served from: lb-backend-example-xxxx
)。如果您的浏览器未呈现此页面,请查看本指南中的配置设置。
为单个后端服务停用 Cloud CDN
- 1.在 Google Cloud Console 中,转到 Cloud CDN 页面。
- 2.在源站所在行的右 侧,点击菜单 more_vert,然后选择修改。
- 3.取消选中您想要停止使用 Cloud CDN 的所有后端服务的复选框。
- 4.点击更新。
为某个源站的所有后端服务移除 Cloud CDN
- 1.在 Cloud Console 中,转到 Cloud CDN 页面。
- 2.在源站所在行的右侧,点击菜单 more_vert,然后选择移除。
- 3.点击移除进行确认。
Last modified 2yr ago