13.2. 使用注解配置服务


在创建和连接站点后,您可以使用 Kubernetes 注解来控制服务网络上可用的服务。

13.2.1. 使用注解在服务网络上公开简单的服务

本节提供了 skupper expose 命令的替代选择,允许您注解现有资源以在服务网络上公开简单的服务。

先决条件

  • 包含您要公开的服务的站点

流程

  1. 登录到配置为站点的命名空间中。
  2. 在其中一个站点中创建部署、一些 pod 或服务,例如:

    $ kubectl create deployment hello-world-backend --image quay.io/skupper/hello-world-backend

    此步骤不是特定于 Skupper 的,也就是说,此过程与集群的标准进程不同。

  3. 注解 kubernetes 资源以创建可在服务网络上进行通信的服务,例如:

    $ kubectl annotate deployment backend "skupper.io/address=backend" "skupper.io/port=8080" "skupper.io/proxy=tcp"

    注解包括:

    • skupper.io/proxy - 要使用的协议: tcphttphttp2。这是唯一需要的注解。例如,如果您使用 skupper.io/proxy=tcp 注解一个名为 backend 的简单部署,该服务会作为后端公开,部署的 containerPort 值用作端口号。
    • skupper.io/address - 服务网络上的服务名称。
    • skupper.io/port - 服务网络上的服务的一个或多个端口。
    注意

    在公开服务而非部署等其他资源时,您可以使用 skupper.io/target 注解来避免修改原始服务。例如,如果要公开 后端服务

    $ kubectl annotate service backend "skupper.io/address=van-backend" "skupper.io/port=8080" \
    "skupper.io/proxy=tcp" "skupper.io/target=backend"

    这可让您删除并重新创建 后端服务,而无需再次应用注解。

  4. 检查您是否公开了该服务:

    $ skupper service status -v
    Services exposed through Skupper:
    ╰─ backend:8080 (tcp)
       ╰─ Sites:
          ├─ 4d80f485-52fb-4d84-b10b-326b96e723b2(west)
          │  policy: disabled
          ╰─ 316fbe31-299b-490b-9391-7b46507d76f1(east)
             │ policy: disabled
             ╰─ Targets:
                ╰─ backend:8080 name=backend-9d84544df-rbzjx
    注意

    只有在当前集群中有目标时,才会显示服务的相关目标。

13.2.2. 了解 Skupper 注解

注解允许您公开服务网络上的服务。本节详细介绍了这些注解的范围

skupper.io/address

服务网络上的服务名称。适用于:

  • 部署
  • StatefulSets
  • DaemonSets
  • 服务
skupper.io/port

服务网络上的服务端口。适用于:

  • 部署
  • StatefulSets
  • DaemonSets
skupper.io/proxy

要使用的协议: tcphttphttp2。适用于:

  • 部署
  • StatefulSets
  • DaemonSets
  • 服务
skupper.io/target

要公开的目标服务的名称。适用于:

  • 服务
skupper.io/service-labels

以逗号分隔的标签键和值列表。您可以使用此注解为监控公开的服务设置标签。适用于:

  • 部署
  • DaemonSets
  • 服务
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.