使用拖管实例组设置 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 地址
如需设置具有“TLS 终止”功能的简单外部 HTTPS 负载平衡器,请参阅设置简单的外部 HTTPS 负载平衡器。
如需查看包含 IPv6 和 SSL 证书设置的基于内容的多区域示例,请参阅设置基于内容的多区域外部 HTTPS 负载平衡器。
如需了解一般概念,请参阅外部 HTTP(S) 负载平衡概览。
如果您使用的是 GKE,则通常由 Kubernetes Ingress 控制器配置负载平衡器。有关详情,请参阅配置 Ingress 以进行外部负载平衡。注意:如果您已经拥有包含一个或多个实例组的外部 HTTP(S) 负载平衡器,则可以跳至本指南的启用 Cloud CDN 部分。
拓扑
在本指南中,您将创建下图所示的配置。简单的 HTTP 负载平衡(点击可放大)
图中的事件顺序如下所示:
客户端向转发规则中定义的外部 IPv4 地址发送内容请求。
负载平衡器检查是否可以从缓存中处理请求。如果可以,负载平衡器将请求的内容从缓存中传送出去。否则,继续进行处理。
转发规则将请求定向到目标 HTTP 代理。
目标代理使用网址映射中的规则确定单个后端服务接收所有请求。
负载平衡器确定后端服务只有一个实例组,并将请求定向到该组中的虚拟机实例。
该虚拟机提供用户请求的内容。
启用了 Cloud CDN 的简单 HTTP(S) 负载平衡(点击可放大)
权限
为完成本指南中的步骤,您必须拥有在项目中创建 Compute Engine 实例、防火墙规则和预留 IP 地址的权限。您必须拥有项目的 Owner 或 Editor 角色,或者必须拥有以下 Compute Engine IAM 角色。
任务 | 所需角色 |
创建实例 | |
添加和移除防火墙规则 | |
创建负载平衡器组件 | |
创建项目(可选) |
如需了解详情,请参阅以下指南:
创建托管实例组
如需使用 Compute Engine 后端设置负载平衡器,您的虚拟机必须属于某个实例组。本指南介绍如何创建由一组运行 Apache 的 Linux 虚拟机组成的代管实例组,然后设置负载平衡。这个托管实例组提供了一组虚拟机,用于运行外部 HTTP 负载平衡器的后端服务器。出于演示目的,后端会传送其各自的主机名。控制台gcloud
在 Google Cloud Console 中,转到实例组页面。
点击创建实例组。
在左侧选择新建代管实例组。
对于名称,输入
lb-backend-example
。在位置下方,选择单个地区。
对于区域,选择您的首选区域。本示例使用
us-east1
。对于区域,选择 us-east1-b。
在实例模板下,选择创建新的实例模板。
对于名称,输入
lb-backend-template
。确保启动磁盘已设置为 Debian 映像,例如 Debian GNU/Linux 9 (stretch)。本文中的说明使用仅 Debian 支持的命令,例如
apt-get
。在管理、安全、磁盘、网络、单独租用下的管理标签页上,将以下脚本插入到启动脚本字段。
在网络标签页上,添加网络标记
allow-health-check
。点击保存并继续。
在自动扩缩模式下,选择不自动调节。
在实例数下,输入
2
。如需创建新的实例组,请点击创建。
注意:由于外部 HTTP(S) 负载平衡器是代理,因此您不需要在防火墙下选择允许 HTTP 流量。在配置防火墙规则中,您将为此负载平衡器创建唯一必要的防火墙规则。
配置防火墙规则
在此示例中,您将创建 fw-allow-health-check
防火墙规则。 这是一种入站流量规则,允许来自 Google Cloud 运行状况检查系统(130.211.0.0/22
和 35.191.0.0/16
)的流量。此示例使用目标标记 allow-health-check
来标识虚拟机。控制台gcloud
在 Google Cloud Console 中,转到防火墙页面。
点击创建防火墙规则以创建第二条防火墙规则。
对于名称,输入
fw-allow-health-check
。在网络下,选择 默认。
在目标下,选择指定的目标标记。
使用
allow-health-check
填充目标标记字段。将来源过滤条件设置为 IP ranges。
将来源 IP 地址范围设置为
130.211.0.0/22
和35.191.0.0/16
。在协议和端口下,选择指定的协议和端口。
选中 tcp 复选框,然后输入端口号
80
。点击创建。
预留外部 IP 地址
现在您的实例已启动并正在运行,接下来请设置客户用来访问您的负载平衡器的全局静态外部 IP 地址。控制台gcloud
在 Google Cloud Console 中,转到外部 IP 地址页面。
如需预留 IPv4 地址,请点击预留静态地址。
对于名称,输入
lb-ipv4-1
。将网络服务层级设置为优质。
将 IP 版本设置为 IPv4。
将类型设置为全局。
点击保留。
设置负载平衡器
在 Google Cloud Console 中,转到负载平衡页面。
点击创建负载平衡器。
在 HTTP(S) 负载平衡下,点击开始配置。
选择从互联网到我的虚拟机,然后点击继续。
在负载平衡器名称中输入
web-map-http
。点击后端配置。
在创建或选择后端服务和后端存储分区下,选择后端服务 > 创建后端服务。
为您的后端服务添加名称,例如
web-backend-service
。在协议下,选择 HTTP。
在后端 > 新后端 > 实例组中,选择您的实例组
lb-backend-example
。保留其他默认设置。
在运行状况检查下,选择创建运行状况检查,然后为您的运行状况检查添加一个名称,例如
http-basic-check
。将协议设置为 HTTP,然后点击保存并继续。
选择启用 Cloud CDN。
保留其他默认设置。
点击创建。
在主机和路径规则中,保留默认设置。
在前端配置中,使用以下值:
将协议设置为 HTTP。
将 IP 地址设置为您之前创建的
lb-ipv4-1
。确保将端口设置为 80 以允许 HTTP 流量。
点击完成。
点击检查并最终确定。
配置完负载平衡器后,点击创建。
等待负载平衡器完成创建。
点击负载平衡器的名称。
在负载平衡器详情屏幕上,记下负载平衡器的 IP:端口。
启用 Cloud CDN
如果您在创建后端服务时尚未启用 Cloud CDN,请立即通过更新后端服务执行此操作:
重要提示:要使 Cloud CDN 缓存来自后端的响应,您需要为每个响应设置有效的缓存指令。例如 Cache-Control: max-age=3600, public
。
您可以在缓存概览中详细了解 Cloud CDN 能够识别的缓存指令以及 Cloud CDN 无法缓存的内容。
将流量发送到您的实例
现在负载平衡服务已运行,您可以将流量发送到转发规则并会发现流量被分散到不同的实例。控制台
在 Google Cloud Console 中,转到负载平衡页面。
点击您刚刚创建的负载平衡器。
在后端部分中,确认虚拟机运行状况良好。运行状况良好列应该会填充相应信息,指示两个虚拟机运行状况都良好 (
2/2
)。否则,请先尝试重新加载页面。Cloud Console 可能需要一些时间才能指示虚拟机运行状况良好。如果几分钟后后端似乎仍运行状况不佳,请检查防火墙配置以及分配给后端虚拟机的网络标记。在 Cloud Console 显示后端实例运行状况良好后,您可以使用网络浏览器转到
http://IP_ADDRESS
来测试您的负载平衡器。将IP_ADDRESS
替换为负载平衡器的 IP 地址。您的浏览器应该会呈现一个页面,其中的内容显示提供该页面的实例的名称以及其地区(例如,
Page served from: lb-backend-example-xxxx
)。如果您的浏览器未呈现此页面,请查看本指南中的配置设置。
停用 Cloud CDN
为单个后端服务停用 Cloud CDN
在 Google Cloud Console 中,转到 Cloud CDN 页面。
在源站所在行的右侧,点击菜单 more_vert,然后选择修改。
取消选中您想要停止使用 Cloud CDN 的所有后端服务的复选框。
点击更新。
为某个源站的所有后端服务移除 Cloud CDN
在 Cloud Console 中,转到 Cloud CDN 页面。
在源站所在行的右侧,点击菜单 more_vert,然后选择移除。
点击移除进行确认。
停用 Cloud CDN 后,不会使缓存失效或完全清除缓存。如果您停用然后重新启用 Cloud CDN,则大部分或所有缓存的内容仍可能会被缓存。为了防止内容通过缓存传送,您必须使该内容失效。
后续步骤
如需了解缓存的内容,请参阅缓存概览。
如需在 GKE 中使用 Cloud CDN,请参阅 Ingress 功能。
如需检查 Cloud CDN 是否正在从缓存传送响应,请参阅查看日志。
如需了解常见问题及解决方案,请参阅问题排查。
如需了解 Cloud CDN 的工作原理,请参阅 Cloud CDN 概览。
Last updated