gpt4 book ai didi

docker - 单个节点中的两个POD之间的通信(minikube)

转载 作者:行者123 更新时间:2023-12-02 11:51:08 24 4
gpt4 key购买 nike

我必须在minikube中的两个POD之间进行通信,这两个POD在两个不同的端口中公开但在单个节点中。

例如:

  • POD A使用8080端口,这是登录页面。
  • 从POD A,我们通过使用8761端口的超链接访问PODB。

  • 现在,在kubernetes中,它动态分配端口,例如:POD A:30069和POD B:30070

    这里的问题是:从POD A(30069)访问POD B时,它不会自动映射POD B的kubernetes端口(30070)。而是POD B尝试在8761端口中打开。

    抱歉,我的描述令人困惑。如果您无法回答我的问题,请随时重新检查。

    谢谢你的帮助

    最佳答案

    I have to communicate between two PODs in minikube which are exposed in two different ports but are in a single node.



    基于您希望进行Pod间通信并且Pod驻留在同一节点上的事实,您可能会采用几种(相当可疑且脆弱)的方法,例如主机名和nodePort公开。为了更符合kubernetes的方法和建议,我建议使用Service而不是直接从Pod级别公开端口。

    您可以在 the official documenatation中阅读有关服务的更多信息,服务用法示例如下所示:
    kind: Service
    apiVersion: v1
    metadata:
    name: my-pod-b-service
    spec:
    selector:
    app: MyPodBApp
    ports:
    - protocol: TCP
    port: 80
    targetPort: 8761

    此规范将创建一个名为 my-pod-b-service的新服务对象,该对象针对带有 app=MyPodBApp标签的任何Pod上的TCP端口8761。有了来自Pod A对主机: my-pod-b-service和port: 80的任何请求,将由端口 8761上的某个Pod B服务(请注意,port和targetPort可以相同,这只是一个示例)。

    附带说明,对于 pods A,您将具有以下内容:
    kind: Service
    apiVersion: v1
    metadata:
    name: my-pod-a-service
    spec:
    selector:
    app: MyPodAApp
    ports:
    - protocol: TCP
    port: 80
    targetPort: 8080

    由于您以服务为目标,因此可以将相同的传入端口(80)映射到这两个服务,并且只要在Pod上正确设置Pod选择器,kubernetes都会注意将每个端口都连接到适当的Pod。

    关于docker - 单个节点中的两个POD之间的通信(minikube),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51041661/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com