第 6 章 在多个站点间部署单个逻辑服务以进行故障转移


使用 Service Interconnect 的典型场景是在两个站点上部署服务器进程,如果一个站点失败,另一个站点会无缝处理任何进一步的请求。在这种情况下,主服务器会响应所有请求,而该服务器可用并且流量仅在主服务器不可用时定向到次要服务器。该流程描述了两台服务器,但这种技术适用于许多服务器。

先决条件

  • 两个或多个未链接站点。
  • 对 Service Interconnect 及其网络模型的基本了解。

流程

  1. 使用 skupper init 创建站点。
  2. 在不同站点上部署服务器。
  3. 在第一个站点上生成令牌:

    $ skupper token create token.yaml

    此文件包含一个密钥以及创建它的站点的位置。

    注意

    通过访问此文件,可以访问服务网络。对其进行恰当的保护。

  4. 使用您要从中连接的集群中的令牌:

    创建到第一个站点的链接:

    $ skupper link create token.yaml --cost 99999

    高成本设置意味着在正常情况下不会定向到此站点。但是,如果没有其他服务器可用,则所有流量都会定向到此站点。

  5. 为两个站点公开服务网络上的服务器。

    1. 创建服务:

      $ skupper service create <name> <port>

      其中

      • &lt;name> 是您要创建的服务的名称。
      • < port> 是服务使用的端口。

      默认情况下,该服务现在在两个站点上可见,尽管没有可用于处理对该服务的请求的服务器。

      注意

      默认情况下,如果您在一个站点上创建服务,它将在所有站点上可用。但是,如果 enable-service-sync 被设置为 false,则需要在两个站点上创建该服务。

    2. 将服务与两个站点上的服务器绑定。

      $ skupper service bind <service-name> <target-type> <target-name>

      其中

      • <service-name> 是服务网络上的服务名称
      • <target-type> 是您要公开的对象:deployment, statefulset, pods, 或 service
      • <target-name> 是集群服务的名称

      例如:

      $ skupper service bind hello-world-backend deployment hello-world-backend
  6. 您可以使用控制台检查流量流或使用您的工具监控服务。客户端可以连接到该站点,并且该站点上的服务器处理请求,直到服务器不可用为止。进一步的请求由其他站点的服务器处理。

如果原始站点上的服务器可用,它将处理所有进一步的请求。但是,到次要或备份服务器的现有 TCP 连接将保留,直到这些 TCP 连接关闭为止。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.