我如何 route/forward RESTful 从一个特定副本集到另一个副本集的 localhost 调用,而不全局公开端口?

How do I route/forward RESTful localhost calls from one specific replica set to another, without globally exposing a port?

基本上,我想做的是想象你有一个副本集。这个名为 A 的副本集包含 pods 'post' 到 localhost:9000,现在我有另一个副本集 B,其 pods 监听 localhost:8080。我想将对 A 上的 localhost:9000 的调用转移到副本集 B 的端口 8080。唯一需要注意的是,如果我有另一个副本集 C,其 pods 也监听端口 8080,他们不应该收到交通。 https://i.stack.imgur.com/tyU0M.png

只需为 B 定义一个服务。对于 A,不用 posting 到本地主机,post 使用服务 B 的名称即可。 C 可以有一个使用相同端口但不会获得流量的服务,因为 A 明确地 post 服务 B.

apiVersion: v1
kind: Service
metadata:
  labels:
    app: app-b
  name: service-b  # <-- name of this service
spec:
  type: ClusterIP
  selector:
    app: app-b
  ports:
  - name: http
    port: 9000
    protocol: TCP
    targetPort: 8080

curl -XPOST http://service-b:9000 <-- 属于 C 的 pod 和服务都不会得到这个请求