Kubernetes 一个吊舱能直接呼叫另一个吊舱吗?

Kubernetes 一个吊舱能直接呼叫另一个吊舱吗?,kubernetes,Kubernetes,如果我有两个豆荚,有没有一种方法可以让他们在不创建和使用任何其他资源的情况下互相交谈 问题适用于这两种情况-如果它们位于同一命名空间或不同的命名空间中。我会对您的问题回答“是”。。。像ShreePrakash给你的服务一样,有很多问题需要回答,同样的问题也可以应用到pod上 这是另一个与此相关的问题: 这回答了您的问题,因为您应该能够对PODNAME.podnespace:PORT执行相同的操作,并且应该可以正常工作 为什么不这样做呢?这仅仅是因为pod在创建时在其名称中添加了一个随机ID(类似

如果我有两个豆荚,有没有一种方法可以让他们在不创建和使用任何其他资源的情况下互相交谈


问题适用于这两种情况-如果它们位于同一命名空间或不同的命名空间中。

我会对您的问题回答“是”。。。像ShreePrakash给你的服务一样,有很多问题需要回答,同样的问题也可以应用到pod上

这是另一个与此相关的问题:

这回答了您的问题,因为您应该能够对
PODNAME.podnespace:PORT执行相同的操作,并且应该可以正常工作

为什么不这样做呢?这仅仅是因为pod在创建时在其名称中添加了一个随机ID(类似于:nginx-ingres-1234456),如果它崩溃并重新创建,则名称将不相同。这适用于无状态应用程序,您可能能够在只有一个pod的有状态状态中扣除pod的名称

这就是为什么使用服务来更容易地定位pod,因为它们的名称就是您在创建时声明的名称


希望这有帮助。

我会对你的问题回答“是”。。。像ShreePrakash给你的服务一样,有很多问题需要回答,同样的问题也可以应用到pod上

这是另一个与此相关的问题:

这回答了您的问题,因为您应该能够对
PODNAME.podnespace:PORT执行相同的操作,并且应该可以正常工作

为什么不这样做呢?这仅仅是因为pod在创建时在其名称中添加了一个随机ID(类似于:nginx-ingres-1234456),如果它崩溃并重新创建,则名称将不相同。这适用于无状态应用程序,您可能能够在只有一个pod的有状态状态中扣除pod的名称

这就是为什么使用服务来更容易地定位pod,因为它们的名称就是您在创建时声明的名称

希望这有帮助。

是的,他们可以

假设您没有任何限制呼叫的网络策略,它只需要知道它的DNS名称,它就是这样工作的:

  • 群集必须启用DNS
  • 如果pod是在同一命名空间上手动创建的(而不是通过部署),则只需调用充当主机的podname即可。
    • 在命名空间NS1上运行的POD1公开了容器端口31333
    • 在命名空间NS1上运行的POD2
    • POD2通过呼叫POD1
  • 如果pod位于不同的名称空间中,则需要将名称空间包含到主机中。
    • 在命名空间NS1上运行的POD1公开了容器端口31333
    • 在名称空间NS2上运行的POD2
    • POD2通过呼叫POD1
  • 如果pod是由部署创建的,那么它的名称是动态的,很难预测,在这种情况下,您需要一个服务来通过使用公共名称(服务)向其他人公开pod
    • 部署到命名空间NS1的DEPLOYMENT1将创建一个pod,格式为deploymentname哈希(示例:DEPLOYMENT1-f82hsh)
    • DEPLOYMENT1-f82hsh是由部署创建的pod,它在名称空间NS1上运行,该名称空间是公开容器端口31333创建的
    • 在名称空间NS2上运行的POD2
    • POD2可以通过调用DEPLOYMENT1-f82hsh,但由于名称是动态的,因此它可以随时更改为其他名称并中断POD2
    • 解决方案是部署服务SVC1,它将请求转发到Deployment1Pods
    • POD2然后调用,该调用将把调用转发到DEPLOYMENT1-f82hsh或DEPLOYMENT1中可用的任何pod
上述场景假设您未在pod中设置主机名子域,并且正在使用默认配置

在更高级的场景中,您还可以使用集群dns后缀来调用这些服务。以下文档更详细地描述了一切 是的,他们可以

假设您没有任何限制呼叫的网络策略,它只需要知道它的DNS名称,它就是这样工作的:

  • 群集必须启用DNS
  • 如果pod是在同一命名空间上手动创建的(而不是通过部署),则只需调用充当主机的podname即可。
    • 在命名空间NS1上运行的POD1公开了容器端口31333
    • 在命名空间NS1上运行的POD2
    • POD2通过呼叫POD1
  • 如果pod位于不同的名称空间中,则需要将名称空间包含到主机中。
    • 在命名空间NS1上运行的POD1公开了容器端口31333
    • 在名称空间NS2上运行的POD2
    • POD2通过呼叫POD1
  • 如果pod是由部署创建的,那么它的名称是动态的,很难预测,在这种情况下,您需要一个服务来通过使用公共名称(服务)向其他人公开pod
    • 部署到命名空间NS1的DEPLOYMENT1将创建一个pod,格式为deploymentname哈希(示例:DEPLOYMENT1-f82hsh)
    • DEPLOYMENT1-f82hsh是由部署创建的pod,它在名称空间NS1上运行,该名称空间是公开容器端口31333创建的
    • 在名称空间NS2上运行的POD2
    • POD2可以通过调用DEPLOYMENT1-f82hsh,但由于名称是动态的,因此它可以随时更改为其他名称并中断POD2
    • 解决方案是部署服务SVC1,它将请求转发到Deployment1Pods
    • POD2然后调用,该调用将把调用转发到DEPLOYMENT1-f82hsh或DEPLOYMENT1中可用的任何pod
上述场景假设您未在pod中设置主机名子域,并且正在使用默认配置

在更高级的场景中,您还可以使用集群dns后缀来调用这些服务。以下文档更详细地描述了一切

这可能会有帮助,谢谢,但仍然不能回答我的问题。我想知道我是否可以直接做pod。不涉及其他资源。我只是想证明一点,不打算在生产中使用它,所以不想寻找最好的p