3.3. 创建网关并在不同的机器上应用它


如果可以从一台机器访问集群,但希望从其他机器创建到服务网络的网关,您可以在第一个机器上创建网关定义捆绑包,稍后将该定义捆绑包应用到第二个机器上,如此过程中所述。例如,如果要将本地数据库服务公开给服务网络,但您不想从数据库服务器访问集群,您可以使用此流程创建定义捆绑包并将其应用到数据库服务器。

流程

  1. 从第一个机器登录到集群,并更改到您的站点的命名空间。
  2. 创建可在服务网络中进行通信的服务:

    $ skupper service create <name> <port>

    其中

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

    例如:

    $ skupper service create database 5432
  3. 创建一个 YAML 文件来代表您要公开的服务,例如:

    name: database 1
    bindings:
        - name: database 2
          host: localhost 3
          service:
            address: database:5432 4
            protocol: tcp 5
            ports:
                - 5432 6
          target_ports:
            - 5432 7
    qdr-listeners:
        - name: amqp
          host: localhost
          port: 5672
    1
    网关名称,仅适用于参考。
    2
    绑定名称,用于跟踪多个绑定。
    3
    提供您要公开的服务的主机的名称。
    4
    服务网络上的服务名称和端口。您在上一步中创建了服务。
    5
    您要用来公开服务的协议:tcp, httphttp2
    6
    您希望此服务在其中可用的服务网络上的端口。
    7
    在点 3 中指定的主机上运行的服务的端口。
  4. 使用网关名称保存 YAML 文件,如 gateway.yaml
  5. 生成可应用于托管要在服务网络上公开服务的机器的捆绑包:

    $ skupper gateway generate-bundle <config-filename> <destination-directory>

    其中:

    • <config-filename> - YAML 文件的名称,包括您在上一步中生成的后缀。
    • <destination-directory> - 要保存生成的网关捆绑包的位置,如 ~/gateways

    例如:

    $ skupper gateway generate-bundle database.yaml ./

    此捆绑包包含网关定义 YAML 和允许访问服务网络的证书。

  6. 将网关定义文件(如 mylaptop-jdoe.tar.gz )复制到托管要在服务网络上公开的服务的机器。
  7. 从托管您要公开的服务的机器中:

    $ mkdir gateway
    
    $ tar -xvf <gateway-definition-file> --directory gateway
    $ cd gateway
    $ sh ./launch.py
    注意

    使用 ./launch.py -t podman./launch.py -t docker 来在容器中运行 Skupper 路由器。

    运行网关捆绑包使用网关定义 YAML 和证书来访问服务网络上的服务。

  8. 检查网关服务的状态:

    检查 service 类型网关:

    $ systemctl --user status <gateway-definition-name>

    检查 podman 类型网关:

    $ podman inspect

    检查 docker 类型网关:

    $ docker inspect
    注意

    之后,您可以使用 ./remove.py 删除网关。

  9. 在具有集群访问权限的机器中,检查 Skupper 网关的状态:

    $ skupper gateway status
    Gateway Definition:
    ╰─ machine-user type:service version:1.5
       ╰─ Bindings:
          ╰─ mydb:3306 tcp mydb:3306 localhost 3306

    这表明只有一个公开的服务,该服务只公开一个端口 (BIND)。没有端口转发到本地主机。

注意

如果您需要更改网关定义,例如要更改端口,您需要删除现有网关,并从开始重复这个过程以重新定义网关。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.