第 5 章 从命名空间公开服务在服务网络中
创建服务网络后,公开的服务可以在该网络中进行通信。
skupper CLI 有两个选项来公开命名空间中已存在的服务:
-
公开支持简单的用例,例如通过单个服务进行部署。具体步骤请查看 第 5.1 节 “在服务网络中公开简单服务”。 -
服务绑定是一种更灵活的方法,例如,如果您拥有多个部署服务。具体步骤请查看 第 5.2 节 “在服务网络上公开复杂服务”。服务创建和
5.1. 在服务网络中公开简单服务 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
这部分论述了如何为服务网络启用用于简单用例的服务。
流程
在其中一个站点中创建部署、一些 pod 或服务,例如,为 教程 创建后端服务:
kubectl create deployment hello-world-backend --image quay.io/skupper/hello-world-backend
$ kubectl create deployment hello-world-backend --image quay.io/skupper/hello-world-backendCopy to Clipboard Copied! Toggle word wrap Toggle overflow 此步骤不是特定于应用程序的连接,此过程与集群的标准进程没有改变。
创建可以在服务网络中进行通信的服务:
skupper expose [deployment <name>|pods <selector>|statefulset <statefulsetname>|service <name>]
$ skupper expose [deployment <name>|pods <selector>|statefulset <statefulsetname>|service <name>]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
-
<name> 是部署的名称 -
<selector> 是一个 pod 选择器 -
<statefulsetname> 是 statefulset 的名称
对于第 1 步部署示例,您可以使用以下命令创建服务:
skupper expose deployment/hello-world-backend --port 8080
$ skupper expose deployment/hello-world-backend --port 8080Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令的选项包括:
-
--port <port-number> :: 指定该服务在服务网络上可用的端口号。注意:您可以通过重复此选项来指定多个端口。 -
--target-port <port-number> :: 指定您要公开的 pod 的端口号。 -
--protocol <protocol> 允许您指定要使用的协议、tcp、http或http2
-
注意
如果您没有指定端口,skupper 使用部署的 containerPort 值。