在同一 kubernetes 集群中从一个 pod 调用一个 rest api 到另一个 pod

Sha*_*ank 0 docker spring-boot kubernetes

在我的 k8s 集群中,我有两个 pods podA 和 podB。两者都在同一个 k8s 集群中。pod B 上的微服务是一个 spring boot rest api。Pod A 上的微服务在其 application.yaml 中有 Pod B 的 ip 和端口。现在每次 podB 重新创建时,ip 都会更改,这迫使我们更改 podA 的 application.yml 中的 ip。请提出更好的方法。

我的限制是:我无法更改 podA 的代码。

Mat*_*att 6

一个服务将访问吊舱提供一致的DNS名称。应用程序永远不应该直接寻址 Pod,除非您有特定的理由(我可以想到自定义负载平衡,或者 Pod 具有身份的 StatefulSets)。

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 9376
Run Code Online (Sandbox Code Playgroud)

然后,您将拥有一致的 DNS 名称来访问与以下内容匹配的任何 Pod selector

my-service.default.svc.cluster.local
Run Code Online (Sandbox Code Playgroud)