如何使用本地BGP路由创建高可用性集群

如果一个节点发生故障,高可用性 (HA) 系统能够立即将其工作负载重定向到另一个节点。HA 集群实施通常会尝试消除单点故障。此类集群通常用于关键数据库、业务应用程序和其他不能容忍停机的系统。

如何使用本地BGP路由创建高可用性集群

HA 集群的运行正常运行时间各不相同,并且可能从三个九 (99.9%) 到五个九不等,甚至超过承诺的系统年度正常运行时间百分比。如果 HA 系统的实施和维护成本低于您在系统停机时产生的费用,那么它对您的企业来说是值得的。

什么是 BGP 路由?

边界网关协议 (BGP) 是一种标准化的外部网关协议,旨在在 Internet 上的自治系统 (AS) 之间交换路由和可达性信息。BGP 可以说是所有 Internet 协议中最重要的,因为它将数千个不同的 Internet 服务提供商 (ISP) 粘合在一起。

BGP 保证网络的稳定性,保证路由器能够适应路由故障。它可以提供这样的功能,因为:

  1. BGP 从相邻的自治系统 (AS) 获取网络前缀可达性信息,同时每个子网向 Internet 通告其存在。BGP 然后确保 Ineternet 中的所有路由器都知道这些子网。
  2. BGP 确定到网络前缀的最佳路由。BGP 路由选择程序由本地路由器使用从相邻自治系统获得的前缀可达性信息执行。然后根据预设策略以及可达性信息确定最佳路由。

本地 BGP 与全局 BGP

除了其他协议之外,自治系统还可以使用内部版本的 BGP 通过其内部网络路由流量。这种技术称为本地或内部 BGP (iBGP)。两者之间的主要区别在于,外部 BGP (eBGP) 运行在不同自治系统中的两个 BGP 路由器之间,而 iBGP 运行在同一自治系统中的两个 BGP 路由器之间。换句话说,iBGP 服务是一种在单个数据中心区域内自动管理本地网络路由的方法。在本指南中,我们将使用 OSI 第 4 层故障转移解决方案创建一个基于本地 BGP 的高可用性集群。

如何使用本地BGP路由创建高可用性集群

先决条件

要遵循本指南,请确保您拥有:

  • 支持内部 BGP 路由的云供应商的用户帐户,或具有预配置 BGP 路由反射器的本地网络设置。我们将在本指南中使用Cherry Servers 云基础设施。
  • 两台安装了 Ubuntu 20.04 的服务器,因为 HA 集群的最小大小是一个双节点系统。
  • 可用于容错的虚拟 IP 地址(浮动 IP、弹性 IP 等)。
  • 基本熟悉用于 HA 集群测试的 Apache Web Server(可选)。

启用 BGP

由于我们使用 Cherry Servers Cloud 基础架构,第一步是创建 Cherry Servers 用户帐户。完成此操作后,您应该在您的帐户上创建启用 BGP 的项目。在项目创建过程中选择“激活 BGP”选项以启动 BGP 会话跟踪:

如何使用本地BGP路由创建高可用性集群

Cherry 服务器 BGP 路由反射器现在已准备好从该项目中创建的任何服务器接收 BGP 会话信息。

部署服务器和虚拟 IP 地址

您现在已准备好为高可用性集群部署云基础设施。首先部署两台支持Local BGP服务的服务器。您可以根据需要在专用服务器和智能 VDS 服务器之间进行选择。

让我们部署两个按小时计费的 Smart VDS 服务器:

如何使用本地BGP路由创建高可用性集群

接下来,您应该获得一个用于构建高可用性环境的虚拟 IP 地址。虚拟 IP 地址在业界有不同的名称,而在 Cherry Servers 中,它被称为浮动 IP。让我们订购一个:

如何使用本地BGP路由创建高可用性集群

至此,您应该拥有使用本地 BGP 创建高可用性集群所需的一切。您的项目中应该有两个活动服务器:

如何使用本地BGP路由创建高可用性集群

以及不得分配给任何服务器的活动浮动 IP 地址:

如何使用本地BGP路由创建高可用性集群

在您的服务器上设置 BGP 路由

要使用本地 BGP 服务,您应该在服务器上安装 BGP 代理。我们将使用 BIRD 作为我们服务器的 BGP 路由守护进程。它允许您在服务器和 Cherry Servers BGP 反射路由器之间建立 BGP 会话。

Cherry Servers 为您提供了一个带有局部变量的帮助脚本,用于为您的每个服务器安装和配置 BIRD。访问单个服务器并在网络 --> 本地 BGP 部分下找到帮助程序脚本:

如何使用本地BGP路由创建高可用性集群

通过 SSH 登录服务器并将此脚本复制到服务器上的新文件中:

vim configure-bgp.sh

同时使该文件可执行:

chmod u+x configure-bgp.sh

运行脚本以安装和配置 BIRD 服务。脚本完成后,将启动 BGP 会话以宣布 IP 地址并将路由通告到上游 Cherry 服务器 BGP 反射路由器。

配置完第一台服务器后,通过 SSH 连接到第二台服务器并重复相同的步骤以在您的项目中启动两个 BGP 会话。

配置浮动IP地址

即使 BGP 会话现在已建立,我们还没有为我们的 BGP 会话通告的网络接口配置 IP 地址。现在让我们指定将要公布给 Cherry 服务器 BGP 反射路由器的浮动 IP 地址。

Cherry Servers 为您提供了一个带有局部变量的帮助脚本,用于使用选定的浮动 IP 地址配置您的网络接口。访问单个服务器并在网络 --> 本地 BGP 部分下找到帮助程序脚本:

如何使用本地BGP路由创建高可用性集群

通过 SSH 登录服务器并将此脚本复制到服务器上的新文件中:

vim configure-ip.sh

同时使该文件可执行:

chmod u+x configure-ip.sh

运行脚本在服务器上配置浮动IP地址。脚本完成后,您的浮动 IP 地址将定期公布给 BGP 反射路由器。这将使上游路由器能够通过本地 BGP 服务将流向此浮动 IP 地址的流量指向您的服务器。

您可以通过运行以下命令确保已在服务器上成功配置本地 BGP 服务:

birdc show route

如何使用本地BGP路由创建高可用性集群

输出显示 BIRD 守护程序版本 1.6.8 已准备就绪,并且已成功配置到您的浮动 IP 地址 ( 188.214.131.108 ) 的单一路由。

完成第一台服务器的配置后,通过 SSH 连接到第二台服务器并重复相同的步骤,让两台服务器都公布您的浮动 IP 地址。

监控本地 BGP 服务

您现在已经使用本地 BGP 服务成功配置了高可用性集群。您现在可以通过 Cherry Servers Client Portal 监控您的 BGP 会话和学习路由。

打开网络 --> 本地 BGP 部分以获取有关本地 BGP 服务状态的最新信息:

如何使用本地BGP路由创建高可用性集群

在左侧部分,您可以检查项目中是否有两个启用 BGP 的服务器。还有关于本地和远程 AS 编号的信息,以及 Cherry 服务器 BGP 反射路由器的 IP 地址。

在右侧,您可以看到在您的服务器和 BGP 路由器之间建立的每个 BGP 会话的两个部分。更具体地说,有以下信息:

  • 下一跳——服务器的主机名及其 IP 地址
  • Pfx 限制——路由器期望的已公布 IP 地址的数量。例如,如果您在项目中有两个浮动 IP 地址,您会看到其中的 2/2 是预期的。
  • BGP 状态- BGP 会话的状态,可以采用以下几个值:
    • 空闲——会话启动;
    • 连接——会话开始;
    • 活跃——会话活跃;
    • Established——会话已建立,正在传输数据;
    • 降级——会话仅与两个 Cherry 服务器 BGP 反射路由器中的一个建立

设置网络服务器

现在是准备高可用性集群以进行测试的时候了。尽管有多种测试方法,但我们将安装 Apache Web 服务器并在每台服务器上创建不同的索引页面,以便能够跟踪当我们向刚刚配置的浮动 IP 地址发出 HTTP 请求时哪个服务器响应。

现在让我们通过 SSH 登录到每个服务器并安装 Apache Web 服务器:

apt update && apt install -y apache2

安装后 Apache 守护进程应该启动并运行。如果出现问题,您可以仔细检查我们的 Apache Web 服务器安装指南以解决问题。

在第一台服务器上,让我们用自定义字符串覆盖默认的 Apache 索引页面"Hello from machine 1":

echo "Hello from machine 1" > /var/www/html/index.html

在第二台服务器上用不同的字符串覆盖同一个文件"Greetings from machine 2":

echo "Greetings from machine 2" > /var/www/html/index.html

现在,每次有人向第一台服务器发送 HTTP 请求时,您都会得到"Hello from machine 1"响应,而第二台服务器将响应"Greetings from machine 2".

测试您的高可用性集群

您现在已准备好测试您的高可用性集群。

打开一个新的终端窗口并查询浮动IP地址。使用默认每 2 秒重复一次 curl 查询的 watch 命令:

watch curl 188.214.131.108

如何使用本地BGP路由创建高可用性集群

您现在可以看到一条"Hello from machine 1"消息,这意味着当您对浮动 IP 地址进行 HTTP 查询时,第一台服务器正在响应。

现在重新启动机器 1 并查看响应消息如何变化:

如何使用本地BGP路由创建高可用性集群

由于系统重启导致机器 1 暂时不可用,本地 BGP 服务将 HTTP 查询自动路由到机器 2。

如果您在客户端刷新 BGP 服务状态,您将看到以下输出:

如何使用本地BGP路由创建高可用性集群

由于bgp-worker-1正在重新启动,其 BGP 会话已丢失,并且服务器此时没有连接路由器。

如果您等待几分钟直到bgp-worker-1重新启动并再次刷新 BGP 服务状态,您应该会看到会话已自动重新建立:

如何使用本地BGP路由创建高可用性集群

我们的 curl 查询的输出现在已更改为初始消息,因为 BGP 会话已重新建立:

如何使用本地BGP路由创建高可用性集群

结论

您现在已经在 Cherry 服务器上使用本地 BGP 服务成功部署和配置了一个高可用性集群。继续在它之上构建或将这个概念纳入您的生产系统,以使其在发生中断时更具弹性和可用性。

文章链接: https://www.mfisp.com/13662.html

文章标题:如何使用本地BGP路由创建高可用性集群

文章版权:梦飞科技所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
IDC云库

如何切换网络托管公司

2022-12-2 16:02:58

IDC云库

如何进行移动加密货币挖矿?

2022-12-2 17:01:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
客户经理
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

梦飞科技 - 最新云主机促销服务器租用优惠