arc*_*hie 1 docker kubernetes devops minikube
我必须在minikube中的两个POD之间进行通信,这两个POD在两个不同的端口中暴露,但是在单个节点中.
例如:
现在,在kubernetes中它动态分配一个端口,例如:POD A:30069和POD B:30070
这里的问题是:当从POD A(30069)访问POD B时,它不会自动映射Puber B(30070)的kubernetes端口.而是POD B尝试在8761端口打开.
如果我的描述令人困惑,请道歉.如果您无法解答我的问题,请随时重新检查.
谢谢你的帮助
我必须在minikube中的两个POD之间进行通信,这两个POD在两个不同的端口中暴露,但是在单个节点中.
基于您希望进行pod间通信并且pod位于同一节点上的事实,您可能有几种(相当可疑且易碎)的方法,例如hostname和nodePort暴露.为了更符合kubernetes方法和建议,我建议使用Service而不是直接从Pod级别公开端口.
您可以在官方文档中阅读有关服务的更多信息,以及服务使用的示例如下:
kind: Service
apiVersion: v1
metadata:
name: my-pod-b-service
spec:
selector:
app: MyPodBApp
ports:
- protocol: TCP
port: 80
targetPort: 8761
Run Code Online (Sandbox Code Playgroud)
此规范将创建一个名为的新Service对象my-pod-b-service,该对象在具有app=MyPodBApp标签的任何Pod上定位TCP端口8761 .因为来自pod A的任何请求来自host:my-pod-b-service和port:80将由端口上的某个pod B提供服务8761(注意port和targetPort可以是相同的,这只是一个例子).
作为旁注,对于pod A你会有类似的东西:
kind: Service
apiVersion: v1
metadata:
name: my-pod-a-service
spec:
selector:
app: MyPodAApp
ports:
- protocol: TCP
port: 80
targetPort: 8080
Run Code Online (Sandbox Code Playgroud)
由于您定位服务,您可以将相同的传入端口(80)映射到这两个服务,并且只要在pod上正确设置了pod选择器,kubernetes就会注意每个服务都会到达适当的pod.
| 归档时间: |
|
| 查看次数: |
352 次 |
| 最近记录: |