在Oracle Cloud 构建跨区域的高可靠架构

184 阅读4分钟

本文将介绍如何使用Oracle Cloud搭建一个高可用,跨区域的系统,我们知道高可用描述的是一个系统在大部分时间都是可用的,可以为我们提供服务的。高可用代表系统即使在发生硬件故障或者系统升级的时候,服务仍然是可用的。通过正确使用跨多个可用性域部署实例来消除单点故障 我们将在三个不同的区域分别创建负载均衡器,每个负载均衡器背后都有两台服务器,这些服务器使用一样的应用程序且暴露一样的端口

先来看看我们的架构设计图

architecture.png

我们在us-west, us-east和 欧洲地区分布创建三个load-balancer 这样我们就有了三个区域对等的资源

首先我们需要在Network->Loadbalancer 这里Load balancer 1: 类型选择Load balancer 2: 选择对应的instances网络和子网 2: Backend 类型 选择Weight Round Robin 3: 增加backend, 选择需要的服务器和端口 为了在区域内实现高可用 需要至少2个服务器 4: 增加 Listener, 我们选择http并且监听在80端口, 需要https的话我们可以在后续通过增加Listener 实现 5: 健康检测使用默认的或者根据应用程序的需要来调整

create-lb.png

create-backend-set.png 创建完成后Load balancer会有一个公网ip 依次在其他区域创建完成后 我们每个区域都有一个Load balance和对应的public IP

load-balancer.png 接着我们需要在dns 流量导入这边设置规则, 首先我们需要有一个域名,可以在OCI-network DNS里面创建

单击创建Zone。 在 Create Zone 对话框中,选择 Manual 。 输入以下值: 输入要创建的区域的名称。这通常是您的 DNS 域。比如 example.com。 选择要在其中创建区域的组织账户。 选择 Primary 作为区域类型以直接在 OCI 中控制区域内容。 单击创建。系统创建并发布区域,并包含必要的 SOA 和 NS 记录

接着你需要在你的域名管理系统里面把对应域名的name server指向这边的NS记录,这样OCI创建的记录都能生效

有了域名以后我们就可以创建域名的流量规则

oracle cloud支持以下的流量规则

  • 故障转移 故障转移策略允许您确定希望在策略中提供应答的顺序(例如,主要和次要)。 Oracle 云基础设施运行状况检查用于确定策略中应答的运行状况。如果主要应答的健康检测没有通过,DNS 流量将自动被引导到次要应答。
  • 负载均衡器 负载均衡器策略允许跨多个端点分配流量。可以为端点分配相等的权重以在端点之间均匀分配流量,或者可以为比率负载平衡分配自定义权重。 Oracle 云基础设施运行状况检查用于确定端点的运行状况。如果某个端点被确定为不健康,DNS 流量将自动分配到其他端点。
  • 地理定位指导 地理位置导向策略根据最终用户的位置将 DNS 流量分配到不同的端点。客户可以定义由始发大陆、国家或州/省(北美)组成的地理区域,并为每个区域定义一个单独的端点或一组端点。
  • ASN 转向 ASN 引导策略使您能够根据自治系统编号 (ASN) 引导 DNS 流量。源自特定 ASN 或一组 ASN 的 DNS 查询可以被引导到指定的端点。
  • IP 前缀引导 IP 前缀引导策略使客户能够根据原始查询的 IP 前缀引导 DNS 流量。

在这里我们将使用地理定位引导的方式来配置 1: 选择 Networking, > Traffic Management Steering Policies -> Create Traffic Management Steering Policy. 2: 类型选择 Geolocation Steering 3: 输入名称, 其他字段保持默认 4: 添加answer pool, 我们将为每个区域的load-balancer创建一个answer pool, 名称为区域的名称,记录类型选择A记录,填入对应的load-balancer的ip 5:定义规则, 我们可以根据区域来定义流量的走向, 这里我们选择 按我们规则的优先级创建对应的应答顺序

traffic-managements.png

6: 增加Global > Catch-all 规则,这个规则是当我们前面的规则没有匹配到以后要进行的匹配规则,同样的按我们规则的优先级创建对应的应答顺序 7: 绑定的domain上, 点击Attached Domains, 我们可以增加一个子域名, 如 hello.example.com

traffic-managements-rules.png 这样我们就完成了在OCI 创建一个跨区域的高可用的应用的全部步骤

traffic-managements-rules.png