1.6. 从命名空间公开服务网络上的服务


创建服务网络后,公开的服务就可以在该网络间进行通信。

skupper CLI 有两个选项用于公开命名空间中已存在的服务:

1.6.1. 在服务网络上公开简单的服务

这部分论述了如何为服务网络启用服务用于简单用例。

流程

  1. 在其中一个站点中创建部署、一些 pod 或服务,例如:

    $ kubectl create deployment hello-world-backend --image quay.io/skupper/hello-world-backend
    Copy to Clipboard Toggle word wrap

    此步骤不是特定于应用程序互连的,也就是说,此过程与集群的标准进程不同。

  2. 创建可在服务网络中进行通信的服务:

    $ skupper expose [deployment <name>|pods <selector>|statefulset <statefulsetname>|service <name>]
    Copy to Clipboard Toggle word wrap

    其中

    • <name > 是部署的名称
    • <selector > 是一个 pod 选择器
    • <statefulsetname > 是 statefulset 的名称

    对于第 1 步中的示例部署,您可以使用以下命令创建服务:

    $ skupper expose deployment/hello-world-backend --port 8080
    Copy to Clipboard Toggle word wrap

    这个命令的选项包括:

    • --port <port-number > :: 指定该服务在服务网络上提供的端口号。注意:您可以通过重复这个选项来指定多个端口。
    • --target-port <port-number > :: 指定您要公开的 pod 的端口号。
    • --protocol <protocol > 允许您指定要使用的协议、tcphttphttp2
注意

如果没有指定端口,skupper 将使用部署的 containerPort 值。

1.6.2. 在服务网络上公开复杂服务

本节描述了如何为服务网络启用服务,以获取更复杂的用例。

流程

  1. 在其中一个站点中创建部署、一些 pod 或服务,例如:

    $ kubectl create deployment hello-world-backend --image quay.io/skupper/hello-world-backend
    Copy to Clipboard Toggle word wrap

    此步骤不是特定于应用程序互连的,也就是说,此过程与集群的标准进程不同。

  2. 创建可在服务网络中进行通信的服务:

    $ skupper service create <name> <port>
    Copy to Clipboard Toggle word wrap

    其中

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

    对于第 1 步中的示例部署,您可以使用以下命令创建服务:

    $ skupper service create hello-world-backend 8080
    Copy to Clipboard Toggle word wrap
  3. 将服务绑定到集群服务:

    $ skupper service bind <service-name> <target-type> <target-name>
    Copy to Clipboard Toggle word wrap

    其中

    • <service-name > 是服务网络上的服务名称
    • <target-type > 是您要公开的对象、部署有状态集Pod 或服务
    • <target-name > 是集群服务的名称
    • --protocol <protocol > 允许您指定要使用的协议、tcphttphttp2

    对于第 1 步中的示例部署,您可以使用以下命令绑定该服务:

    $ skupper service bind hello-world-backend deployment hello-world-backend
    Copy to Clipboard Toggle word wrap

本节演示了如何从没有部署 Application Interconnect 的命名空间公开服务。

先决条件

  • 部署了 Application Interconnect 的命名空间。
  • 在不同命名空间中运行的服务。
  • 允许命名空间间通信的网络策略

    1. 登录到集群并更改到您的站点的命名空间。
    2. 在服务网络中公开服务:

      $ skupper expose service <service>.<namespace> --address <service>
      Copy to Clipboard Toggle word wrap
      • <service> - 服务网络上的服务名称。
      • <namespace> - 要公开服务的命名空间的名称。

      例如,如果您在 east 命名空间中部署了 Application Interconnect,并在 east- backend 命名空间中创建后端服务,您可以将上下文设置为 east 命名空间,并使用以下方法将服务公开为服务网络上的 后端

      $ skupper expose service backend.east-backend --port 8080 --address backend
      Copy to Clipboard Toggle word wrap
      注意

      您只能从其他命名空间中公开服务。如果要从另一个命名空间公开部署,请在尝试公开前从部署中创建服务。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部