13.2. 使用注解配置服务
在创建和连接站点后,您可以使用 Kubernetes 注解来控制服务网络上可用的服务。
13.2.1. 使用注解在服务网络上公开简单的服务
本节提供了 skupper expose
命令的替代选择,允许您注解现有资源以在服务网络上公开简单的服务。
先决条件
- 包含您要公开的服务的站点
流程
- 登录到配置为站点的命名空间中。
在其中一个站点中创建部署、一些 pod 或服务,例如:
$ kubectl create deployment hello-world-backend --image quay.io/skupper/hello-world-backend
此步骤不是特定于 Skupper 的,也就是说,此过程与集群的标准进程不同。
注解 kubernetes 资源以创建可在服务网络上进行通信的服务,例如:
$ kubectl annotate deployment backend "skupper.io/address=backend" "skupper.io/port=8080" "skupper.io/proxy=tcp"
注解包括:
-
skupper.io/proxy
- 要使用的协议:tcp
、http
或http2
。这是唯一需要的注解。例如,如果您使用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"
这可让您删除并重新创建
后端服务
,而无需再次应用注解。-
检查您是否公开了该服务:
$ 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
要使用的协议:
tcp
、http
或http2
。适用于:- 部署
- StatefulSets
- DaemonSets
- 服务
- skupper.io/target
要公开的目标服务的名称。适用于:
- 服务
- skupper.io/service-labels
以逗号分隔的标签键和值列表。您可以使用此注解为监控公开的服务设置标签。适用于:
- 部署
- DaemonSets
- 服务