注:
- Oracle 提供的免费实验室环境中提供了此教程。
- 它对 Oracle Cloud Infrastructure 身份证明、租户和区间使用示例值。完成实验室后,请用特定于您的云环境的实验室值替换这些值。
负载平衡入门
简介
负载平衡服务用于在 VCN 内创建高可用性负载平衡器。所有负载平衡器都附带预配的带宽。您可以选择使用公共 IP 地址或专用 IP 地址创建负载平衡器。负载平衡器支持对应用服务器的传入流量和流量进行 SSL 处理。
创建具有公共 IP 地址的负载平衡器时,您可以指定可以运行负载平衡器的两个子网(每个子网位于不同的可用性域中)。这两个子网可确保负载平衡器的高可用性。专用负载平衡器只需要一个子网。
本教程介绍负载平衡。您可以按照此处步骤来创建公共负载平衡器,并使用基本的 Web 服务器应用程序对其进行验证。有关服务及其组件的完整详细信息,请参阅负载平衡概述。
开始之前
要试用本教程的负载平衡服务,必须先设置以下内容:
- 具有两个子网(一个位于不同的可用性域中)和互联网网关的虚拟云网络 (VCN)
- 两个实例正在运行(在不同的子网中)
- 在每个实例上运行的 Web 应用程序(例如 Apache HTTP 服务器)
如果您尚未设置这些项目,可以按照此处显示的步骤操作。
提示:如果您需要 VCN 和实例简介,请先尝试教程 - 启动您的第一个 Linux 实例。
VCN 和实例设置
下图显示了先决条件 VCN 和实例:
创建 VCN
-
使用云租户名称、用户名和密码登录 Oracle Cloud Infrastructure 控制台。
-
打开导航菜单。在核心基础设施下,转到网络并单击虚拟云网络。
确保在左侧的区间列表中选择了相应的区间。
-
单击网络快速入门。
-
选择具有 Internet 连接的 VCN ,然后单击启动工作流。
-
输入以下信息:
- VCN 名称:输入云网络的名称。该名称将合并到所有自动创建的相关资源的名称中。请避免输入机密信息。
- 区间:此字段默认为当前区间。选择要在其中创建 VCN 和相关资源的区间(如果尚未选择)。
- VCN CIDR 块:为 VCN 输入有效的 CIDR 块。例如 10.0.0/16。
- 公共子网 CIDR 块:为子网输入有效的 CIDR 块。该值必须在 VCN 的 CIDR 块内。例如:10.0.0.0/24。
- 专用子网 CIDR 块:为子网输入有效的 CIDR 块。该值必须在 VCN 的 CIDR 块内,并且不能与公共子网的 CIDR 块重叠。例如:10.0.1.0/24。
- 接受任何其他字段的默认值。
-
单击下一步。
-
复核工作流将为您创建的资源列表。请注意,工作流将设置安全列表规则和路由表规则,以便为 VCN 启用基本访问。
-
单击创建以启动短工作流。
-
工作流完成后,单击查看虚拟云网络。
云网络具有以下资源和特征:
- 互联网网关。
- Internet 网关。
- NAT 网关。
- NAT 网关。
- 可访问 Oracle 服务网络的服务网关。
- 可访问 Oracle 服务网络的服务网关。
- 可访问互联网网关的区域性公共子网。此子网使用 VCN 的默认安全列表和默认路由表。此子网中的实例可能有公共 IP 地址(可选)。
- 可访问 NAT 网关和服务网关的区域性专用子网。此子网使用工作流创建的自定义安全列表和自定义路由表。此子网中的实例不能具有公共 IP 地址。
- 对 DNS 使用互联网和 VCN 解析程序。
启动两个实例
此示例使用 VM.Standard2.1 shape 。如果您愿意,可以选择较大的配置。
-
打开导航菜单。在核心基础设施下,转到计算并单击实例。
-
单击创建实例。
-
在创建计算实例页上,为名称输入名称,例如:Webserver1。
-
在配置放置和硬件部分中,输入以下内容:
- 可用性域:在列表中选择第一个可用性域 (AD-1)。
- 映像:选择 Oracle Linux 7.x 映像。
- 配置:单击更改配置,然后进行以下选择:
- 对于实例类型,选择虚拟机。
- 对于配置系列,选择 Intel Skylake ,然后选择 VM Standard2.1 配置(1 个 OCPU、15 GB RAM)。
- 单击选择配置。
-
在配置网络部分中,配置实例的网络详细信息。不要接受默认值。
- 对于网络,选择选择现有虚拟云网络
- <compartment_name> 中的虚拟云网络:选择您创建的云网络。如有必要,单击更改区间以切换到包含您创建的云网络的区间。
- 对于子网,保持选择现有子网处于选中状态。
- <compartment_name> 中的子网:在可用性域 1 中选择公共子网。如有必要,单击更改区间以切换到包含正确子网的区间。
- 保留 Use network security group to control traffic 复选框已清除。
- 选择 Assign a public IP address 选项。这会为实例创建公共 IP 地址,您需要访问该实例。如果您在选择此选项时遇到问题,请确认您选择了通过 VCN 创建的公共子网,而不是专用子网。
-
在添加 SSH 密钥部分中,上载要用于对实例进行 SSH 访问的密钥对的公共密钥 (.pub) 部分。浏览到要上载的密钥文件,或者将文件拖放到框中。
如果您没有 SSH 密钥对,请参见 Creating a Key Pair 。
-
在配置引导卷部分中,清除所有选项。
-
单击显示高级选项。在 Networking(网络)选项卡上,确保 Hostname(主机名)字段为空。
-
单击创建。
-
重复前面的步骤。这次,输入名称
Webserver2
,然后选择可用性域 2 中的子网。
在每个实例上启动一个 Web 应用程序
此示例使用 Apache HTTP Server。
-
连接到您的实例。如果您需要帮助,请参阅连接到您的实例。
-
运行 yum 更新:
sudo yum -y update
-
安装 Apache HTTP Server:
sudo yum -y install httpd
-
允许通过防火墙使用 Apache(HTTP 和 HTTPS):
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
注:
打开防火墙
如果选择运行与 Apache 不同的应用程序,请确保运行前面的命令打开应用程序端口的防火墙。
-
重新装入防火墙:
sudo firewall-cmd --reload
-
启动 Web 服务器:
sudo systemctl start httpd
-
在每个服务器上添加一个 index.htm 文件,指示它是哪个服务器,例如:
-
在 Web 服务器 1 上:
sudo su
echo 'WebServer1' >/var/www/html/index.html
-
在 Webserver 2 上:
sudo su
echo 'WebServer2' >/var/www/html/index.html
-
教程概述
在此教程中,您将创建公共负载平衡器并验证它。负载平衡器需要配置多个组件才能正常运行,本教程将指导您完成每个步骤以帮助您了解这些组件。
要创建和测试负载平衡器,请完成以下步骤:
- 向 VCN 添加两个子网以托管负载平衡器。
- 创建负载平衡器。
- 创建具有健康检查的后端集。
- 将后端服务器添加到后端集。
- 创建监听程序。
- 更新负载平衡器子网安全列表,并允许监听程序进行互联网流量传输。
- 验证负载平衡器。
- 更新规则以保护后端服务器。
- 删除您的负载平衡器。
步骤 1:向 VCN 添加两个子网以托管负载平衡器
负载平衡器必须位于与应用实例不同的子网中。此配置允许您通过更严格的访问规则在子网中保护应用实例,同时允许公共互联网流量进入公共子网中的负载平衡器。
要将公共子网添加到 VCN,请执行以下操作:
添加安全列表
-
打开导航菜单。在核心基础设施下,转到网络并单击虚拟云网络。
此时将显示当前区间中的 VCN 列表。
-
单击包括您的应用程序实例的 VCN 的名称。
-
在资源下,单击安全列表。
-
单击创建安全列表。
- 在区间中创建:此字段默认为当前区间。选择要在其中创建安全列表的区间(如果尚未选择)。
- 输入名称,例如“LB 安全列表”。
- 删除入站规则的条目和出站规则的条目。安全列表必须没有规则。在负载平衡器工作流期间会自动添加正确的规则。
- 标记:保留原样(如果需要,可以在以后添加标记)。
- 单击创建安全列表。
- 返回到“Virtual Cloud Network Details(虚拟云网络详细信息)”页面。
添加路由表
- 在资源下,单击路由表。
- 单击创建路由表。输入以下信息:
- 在区间中创建:此字段默认为当前区间。选择要在其中创建路由表的区间(如果尚未选择)。
- 名称:输入名称,例如“LB 路由表”。
- 目标类型:选择“Internet 网关”。
- 目标 CIDR 块:输入 0.0.0.0/0。
- 区间:选择包含 VCN Internet 网关的区间。
- 目标:选择 VCN 的互联网网关。
- 标记:保留原样(如果需要,可以在以后添加标记)。
- 单击创建路由表。
创建第一个子网
- 在资源下,单击子网。
- 单击创建子网。
- 输入或选择下列值:
- 名称:输入名称,例如“LB 子网 1”。
- availability domain(可用性域):选择第一个可用性域 (AD-1)。
- CIDR 块:输入 10.0.4.0/24。
- 路由表:选择您创建的负载平衡器路由表。
- Subnet Access(子网访问):选择 Public Subnet(公共子网)。
- DNS 解析:选择在此子网中使用 DNS 主机名。
- DHCP 选项:选择 LB_Network 的默认 DHCP 选项。
- 安全列表:选择您创建的负载平衡器安全列表。
- 标记:保留原样(如果需要,可以在以后添加标记)。
- 单击创建。
创建第二个子网
在其他可用性域中创建第二个负载平衡器子网。
- 在 VCN 的详细信息页中,单击创建子网。
- 输入以下信息:
- 名称:输入名称,例如“LB 子网 2”。
- availability domain(可用性域):选择第二个可用性域 (AD-2)。
- CIDR 块:输入 10.0.5.0/24。
- 路由表:选择您创建的负载平衡器路由表。
- Subnet Access(子网访问):选择 Public Subnet(公共子网)。
- DNS 解析:选择在此子网中使用 DNS 主机名。
- DHCP 选项:选择 LB_Network 的默认 DHCP 选项。
- 安全列表:选择您创建的负载平衡器安全列表。
- 标记:保留原样(如果需要,可以在以后添加标记)。
- 单击创建。
下图显示了添加到 VCN 的新组件:
步骤 2:创建负载平衡器
创建公共负载平衡器时,您可以选择其配置(大小),并选择两个子网,每个子网位于不同的可用性域中。此配置确保负载平衡器具有高可用性。它一次仅在一个子网中处于活动状态。此负载平衡器附带一个公共 IP 地址以及与您选择的配置相对应的预配带宽。
提示:虽然负载平衡器位于子网中,但可以将流量定向到驻留在 VCN 内任何子网中的后端集。
-
打开导航菜单。在核心基础结构组下,转到网络并单击负载平衡器。
确保在左侧选择了适当的区间。
-
单击创建负载平衡器。
-
输入以下信息:
- 名称:输入负载平衡器的名称。
- 配置:选择 100 Mbps。配置指定负载平衡器的带宽。对于教程,请使用最小的配置。以后无法更改配置。
- 虚拟云网络:为负载平衡器选择虚拟云网络。
- 可见性:选择创建公共负载平衡器。
- 子网 (1/2):选择 LB 子网 1。
- 子网 (2/2):选择 LB 子网 2。第二个子网必须位于与所选第一个子网不同的可用性域中。
-
单击创建。
创建负载平衡器后,您将获得一个公共 IP 地址。将所有传入流量路由到此 IP 地址。IP 地址在您指定的两个子网中都可用,但它一次仅在一个子网中处于活动状态。
步骤 3:创建后端集
后端集是负载平衡器将流量定向到的后端服务器的集合。后端服务器、负载平衡策略和健康检查脚本的列表用于定义每个后端集。一个负载平衡器可以具有多个后端集,但对于本教程,您只能创建一个包含两个 Web 服务器的后端集。
在此步骤中,您将定义后端集策略和健康检查。在单独的步骤中添加服务器。
要创建后端集:
-
单击负载平衡器的名称并查看其详细信息。
-
单击创建后端集。
-
在该对话框中:
- 名称:为负载平衡器后端设置名称。此名称不能包含空格。
- 策略:选择“加权循环”。
-
输入健康检查详细信息。
负载平衡自动检查负载平衡器的实例运行状况。如果检测到不健康的实例,它将停止向实例发送流量,并将流量重新路由到健康的实例。在此步骤中,您将提供检查后端集中服务器运行状况并确保服务器可以接收数据流量所需的信息。
- 协议:选择 HTTP。
- 端口:输入 80
- URL 路径 (URI) :输入/其余字段是可选的,对于本教程可以留空。
-
单击创建。
创建后端集时,工作请求显示状态“Succeeded(成功)”。关闭“工作请求”对话框。
什么是策略?
策略确定流量如何分配给后端服务器。
- Round Robin(循环)- 此策略将传入流量按顺序分配给后端集列表中的每个服务器。每台服务器收到连接后,负载平衡器按相同的顺序重复列表。
- IP 散列 - 此策略使用传入请求的源 IP 地址作为散列密钥,将非粘滞流量路由到同一后端服务器。只要服务器可用,负载平衡器便会将请求从同一客户端路由到同一后端服务器。
- 最少连接数 - 此策略将传入的非粘性请求流量路由到具有最少活动连接数的后端服务器。
步骤 4:向后端集添加后端(服务器)
创建后端集后,您可以向其添加计算实例(后端服务器)。要添加后端服务器,可以输入每个实例和应用程序端口的 OCID。通过 OCID,控制台可以创建在负载平衡器子网和实例子网之间启用流量所需的安全列表规则。
提示:安全列表是 VCN 的虚拟防火墙规则,用于提供入站和出站规则来指定允许传入和传出子网的流量类型。更新 VCN 的安全列表规则,以允许负载平衡器子网和后端服务器子网之间的流量流。在此步骤中,您可以通过提供实例 OCID 自动更新安全列表。
要将服务器添加到后端集,请执行以下操作:
- 在负载平衡器的详细信息页上,单击后端集。此时将显示刚刚创建的后端集。
- 单击后端集的名称并查看其详细信息。
- 单击编辑后端。
在该对话框中:
-
确保选中了帮我创建合适的安全列表规则。
-
OCID :粘贴第一个实例的 OCID (Webserver1)。
-
端口:输入 80。
-
权重:保留空白以平均对服务器进行加权。
-
重复步骤 2 到 4,粘贴到第二个实例的 OCID (Webserver2)。
-
单击创建规则。
下表显示了在此任务中创建的组件:
将哪些规则添加到我的安全列表中?
系统将更新负载平衡器子网使用的安全列表,以允许负载平衡器向每个后端服务器子网发出出站流量:
-
对负载平衡器子网安全列表的更新:
- 允许传出流量到后端服务器 1 子网(例如 Public-Subnet-AD1)
- 允许传出流量到后端服务器 2 子网(例如 Public-Subnet-AD2)
系统将更新后端服务器子网使用的安全列表,以允许来自负载平衡器子网的入站流量:
-
后端服务器子网安全列表的更新:
- 允许来自负载平衡器子网 1 的入站流量
- 允许来自负载平衡器子网 2 的入站流量
如何获取实例的 OCID?
当您在实例详细信息页上查看实例时,将显示 OCID(Oracle Cloud 标识符)。
-
在该对话框中,右键单击查看实例,然后选择浏览器选项以在新选项卡中打开链接。
此时将启动新的控制台浏览器选项卡,其中显示当前区间中的实例。
-
在刚刚打开的选项卡中,如果您的实例不在当前区间中,请选择该实例所属的区间。(从页面左侧的列表中选择。)
每个实例旁边将显示 OCID 的简短版本。
-
单击您感兴趣的实例。
实例详细信息页面上将显示 OCID 的简短版本。
-
单击复制以复制 OCID。然后将其粘贴到“实例 ID”字段中。
步骤 5:为负载平衡器创建监听程序
监听程序是一个检查连接请求的实体。负载平衡器监听程序使用您在监听程序中指定的端口和负载平衡器的公共 IP 监听入站客户端流量。
在本教程中,您将定义一个监听程序,该监听程序接受端口 80 上的 HTTP 请求。
注:
监听多个端口
监听程序可以在一个端口上监听。要侦听更多端口(例如 443 表示 SSL),请创建另一个有关为负载平衡器启用 SSL 的 listener.For 信息,请参阅管理 SSL 证书。
要创建监听程序,请执行以下操作:
- 在“负载平衡器详细信息”页面上,单击监听程序。
- 单击创建监听程序。
- 输入以下信息:
- 名称:输入友好名称。
- 协议:选择 HTTP。
- 端口:输入 80 作为要侦听传入通信的端口。
- 后端集:选择您创建的后端集。
- 单击创建。
步骤 6:更新负载平衡器安全列表并允许监听程序进行互联网流量访问
创建监听程序时,还必须更新 VCN 的安全列表,以便允许流量流入该监听程序。
允许监听程序接受流量
负载平衡器所在的子网必须允许监听程序接受流量。要允许流量到达监听程序,请更新负载平衡器子网的安全列表。
要更新安全列表以允许监听程序接受流量,请执行以下操作:
-
打开导航菜单。在核心基础设施下,转到网络并单击虚拟云网络。
此时将显示当前区间中的 VCN 列表。
-
单击安全列表。此时将显示云网络中的安全列表列表列表。
-
单击 "LB Security List"(负载平衡器安全列表)。将显示详细信息。
-
单击编辑所有规则。
-
在“允许入站规则”下,单击添加规则。
-
输入以下入站规则:
- 源类型:选择 CIDR
- 源 CIDR:输入 0.0.0.0/0
- IP Protocol:选择 TCP
- 目标端口范围:输入 80(监听程序端口)。
-
单击保存安全列表规则。
如果创建了其他监听程序,请为每个监听程序端口添加入站规则以允许流量流向监听程序。例如,如果您在端口 443 上创建了监听程序,请使用目标端口范围 443 重复前面的步骤。
下图显示了在此任务中创建的组件:
步骤 7:验证负载平衡器
要测试负载平衡器的功能,可以打开 Web 浏览器并导航到其公共 IP 地址(在负载平衡器的详细信息页面上列出)。如果正确配置了负载平衡器,您可以看到其中一个 Web 服务器实例的名称:
-
打开 Web 浏览器。
-
输入负载平衡器公共 IP 地址。
此时将显示其中一个 Web 服务器的 index.htm 页。
-
刷新 Web 页。
此时将显示另一个 Web 服务器的 index.htm 页面。
由于您将负载平衡器后端集策略配置为 Round Robin,因此在两个 Web 服务器之间刷新页替代项。
步骤 8:更新用于将流量限制为后端服务器的规则
更新默认安全列表和默认路由表,以将流量限制到后端服务器。如果您使用创建虚拟云网络加相关资源选项来创建 VCN,并且您不会立即终止此负载平衡器,则这些操作非常重要。
要删除默认路由表规则:
-
打开导航菜单。在核心基础设施下,转到网络并单击虚拟云网络。
-
单击 VCN 的名称并查看其详细信息。
-
在资源下,单击路由表。
-
单击 VCN 的默认路由表。
-
单击编辑路由规则。
-
单击路由规则旁边的 X ,然后单击保存。
默认路由表现在没有任何路由规则。
要编辑默认安全列表规则,请执行以下操作:
-
转到 Virtual Cloud Network Details(虚拟云网络详细信息)页面。
-
在资源下,单击安全列表。
-
单击 VCN 的默认安全列表。
-
单击编辑所有规则。
-
在允许入站规则下,删除以下规则:
操作 源 CIDR IP 协议 目的地端口范围 删除 0.0.0.0/0 TCP 22 删除 0.0.0.0/0 ICMP 3,4 删除 10.0.0.0/16 ICMP 3 -
在允许出站规则下,删除规则。不能存在出站规则。
现在,您的实例只能接收来自负载平衡器子网的数据流量,并定向到这些子网的流量。您无法再直接连接到实例的公共 IP 地址。
步骤 9:删除负载平衡器
当负载平衡器可用时,按每小时计费一次,从而保持运行。一旦不再需要负载平衡器,您可以将其删除。删除负载平衡器后,您将停止为其产生费用。删除负载平衡器不会影响负载平衡器使用的后端服务器或子网。
要删除负载平衡器:
-
打开导航菜单。在核心基础结构组下,转到网络并单击负载平衡器。
-
选择包含负载平衡器的区间。
-
在负载平衡器旁边,单击“操作”图标(三个点),然后单击终止。
-
提示时确认。
如果您要删除为此教程创建的实例和 VCN,请按照从教程中清除资源中的说明进行操作。
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或在 Oracle Learning YouTube 频道上访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Get Started with Load Balancing
F36525-03
October 2022
Copyright © 2022, Oracle and/or its affiliates.