第 5 章 创建路由器网络


要创建 AMQ 互联路由器网络,您可以在 互联 自定义资源中定义部署,然后应用它。AMQ Interconnect Operator 通过调度必要的 Pod 并创建任何所需资源来创建部署。

本节中的步骤演示以下路由器网络拓扑:

  • interior router mesh
  • 带有边缘路由器的路由器网格以实现可扩展性
  • 连接两个 OpenShift 集群的集群路由器网络

先决条件

  • AMQ Interconnect Operator 已安装在 OpenShift Container Platform 项目中。

5.1. 创建内路由器部署

相互间的路由器建立相互连接,并自动计算网络中的最低成本路径。

流程

此流程创建三个路由器的内路由器网络。路由器在网格拓扑中相互自动连接,它们的连接可以通过 mutual SSL/TLS 身份验证进行保护。

  1. 创建描述 interior 路由器部署的 Interconnect 自定义资源 YAML 文件。

    router-mesh.yaml 文件示例

    apiVersion: interconnectedcloud.github.io/v1alpha1
    kind: Interconnect
    metadata:
      name: router-mesh
    spec:
      deploymentPlan:
        role: interior  1
        size: 3  2
        placement:  Any  3

    1
    部署中路由器的操作模式。Operator 将在网格拓扑中自动连接间路由器。
    2
    要创建的路由器数量。
    3
    每个路由器在单独的 Pod 中运行。放置(Placement)定义了 Operator 应该调度并放置 Pod 的位置。您可以选择以下放置选项:
    任意
    Pod 可以在 OpenShift Container Platform 集群的任何节点上运行。
    Operator 将路由器 Pod 放置到集群中的每个节点上。如果选择这个选项,则不需要 Size 属性,路由器数量与集群中的节点数量对应。
    反关联性
    Operator 确保多个路由器 Pod 不在集群的同一节点上运行。如果大小超过集群中的节点数量,则无法调度的额外 Pod 将保持 Pending 状态。
  2. 创建 YAML 文件中描述的路由器部署。

    $ oc apply -f router-mesh.yaml

    Operator 在网格拓扑中创建部署交集,该路由器使用默认的地址语义。它还会创建一个服务,在其中可访问该路由器,以及您可以访问 Web 控制台的路由。

  3. 验证路由器网格是否已创建且 Pod 是否正在运行。

    每个路由器在单独的 Pod 中运行。它们使用 Operator 创建的 Service 会自动连接。

    $ oc get pods
    NAME                                     READY   STATUS    RESTARTS   AGE
    interconnect-operator-587f94784b-4bzdx   1/1     Running   0          52m
    router-mesh-6b48f89bd-588r5              1/1     Running   0          40m
    router-mesh-6b48f89bd-bdjc4              1/1     Running   0          40m
    router-mesh-6b48f89bd-h6d5r              1/1     Running   0          40m
  4. 检查路由器部署。

    $ oc get interconnect/router-mesh -o yaml
    apiVersion: interconnectedcloud.github.io/v1alpha1
    kind: Interconnect
    ...
    spec:
      addresses:  1
      - distribution: closest
        prefix: closest
      - distribution: multicast
        prefix: multicast
      - distribution: closest
        prefix: unicast
      - distribution: closest
        prefix: exclusive
      - distribution: multicast
        prefix: broadcast
      deploymentPlan:  2
        livenessPort: 8888
        placement: Any
        resources: {}
        role: interior
        size: 3
      edgeListeners:  3
      - port: 45672
      interRouterListeners:  4
      - authenticatePeer: true
        expose: true
        port: 55671
        saslMechanisms: EXTERNAL
        sslProfile: inter-router
      listeners:  5
      - port: 5672
      - authenticatePeer: true
        expose: true
        http: true
        port: 8080
      - port: 5671
        sslProfile: default
      sslProfiles:  6
      - credentials: router-mesh-default-tls
        name: default
      - caCert: router-mesh-inter-router-tls
        credentials: router-mesh-inter-router-tls
        mutualAuth: true
        name: inter-router
      users: router-mesh-users  7
    1
    默认地址配置。发送到与这些前缀不匹配的地址的所有消息都会在 均衡的 任意广播模式中分发。
    2
    部署了三个间路由器的路由器网格。
    3
    每个相互路由器侦听端口 45672,以获取来自边缘路由器的连接。
    4
    在端口 55671 中,相互路由器互相连接。这些路由器连接通过 SSL/TLS mutual 验证进行保护。inter-router SSL Profile 包含 Operator 生成的证书详情。
    5
    每个 interior 路由器侦听来自以下端口的外部客户端的连接:
    • 5672 - 从消息传递应用程序取消安全连接。
    • 5671 - 从消息传递应用程序的安全连接。
    • 8080 - AMQ Interconnect Web 控制台访问。应用默认用户名/密码安全性。
    6
    使用 Red Hat Integration - AMQ Certificate Manager Operator,Red Hat Integration - AMQ Interconnect Operator 会自动创建两个 SSL 配置集:
    • inter-router - Operator 通过创建证书颁发机构(CA)并为每个间路由器生成 CA 签名的证书,从而保护路由器的 inter-router 网络与 mutual TLS 身份验证的安全。
    • Default - Operator 为消息应用程序创建 TLS 证书,以连接到端口 5671 上的 interior 路由器。
    7
    AMQ Interconnect web 控制台使用用户名/密码身份验证进行保护。Operator 会自动生成凭证并将其存储在 router-mesh-users Secret 中。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.