docker LoadBalancer或Nodeport服务未从本地主机连接到minikube内部的Pod

zkure5ic  于 2023-03-01  发布在  Docker
关注(0)|答案(1)|浏览(119)

我正在尝试将LoadBalancer用作Pod的服务。Pod内的容器(单容器Pod)正在侦听端口8080以通过UDP接收数据包。我已手动检查容器,它的工作正常。但是,在创建LoadBalancer服务后,我无法将数据包从主机发送到minikube群集内的Pod。
这是我的pod和服务的yaml文件。我想发送数据包到集群中的pod。我创建了一个服务,你可以看看。
服务确实会侦听,但我真的不明白在我将数据包发送到externalIP:nodePort之后,数据包会转发到哪里。
对于POD

apiVersion: v1
kind: Pod
metadata:
  name: tstream-deb
  labels:
    app: tstream-deb
spec:
  containers:
  - name: tstream-deb
    image: tstream-deb
    imagePullPolicy: IfNotPresent
    ports:
    - containerPort: 8080
      protocol: UDP

服务

apiVersion: v1
kind: Service
metadata:
  name: tstream-deb
  labels:
    app: tstream-deb
spec:
  type: LoadBalancer
  ports:
    - port: 80
      targetPort: 8080
      nodePort: 30001
      protocol: UDP
  selector:
    name: tstream-deb
    app: tsream-deb
~

所以我的Pod基本上是监听一个数据包/消息,并在Golang中做一些事情,我在本地以及容器中测试了这些事情,它们工作得非常好。
我怎样才能从本地主机到minikube集群内部与我的pod交互呢?我也试过minikube隧道,但是没有用。

py49o6xq

py49o6xq1#

似乎问题出在使用<externalIP>:<nodePort>作为网络地址上。
应该是

<externalIP>:<servicePort>(80)

<nodeIP>:<nodePort>(30001)

您还可以使用端口转发从主机检查服务

kubectl port-forward svc/tstream-deb 3000:80

在此设置下,使用localhost:3000作为网络地址

相关问题