【发布时间】:2023-02-26 10:30:08
【问题描述】:
我正在尝试将 LoadBalancer 用作 pod 的服务。 pod 内的容器(单容器 pod)正在侦听端口 8080 以通过 UDP 接收数据包。我已经手动检查了容器,它的部分工作正常。但是,在创建 LoadBalancer 服务后,我无法将数据包从主机发送到位于 minikube 集群内的 pod。
这是我的 pod 和服务 yaml 文件。 我想将数据包发送到集群内的我的 pod。我创建了一项服务,您可以查看一下。
该服务确实在监听,但我真的不明白在将数据包发送到 externalIP:nodePort 后将数据包转发到哪里。
对于吊舱
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 隧道但没有帮助。
【问题讨论】:
-
Service资源中的selector似乎不正确。它应该只有app: tsream-deb选择器,请更新您的问题以添加kubectl describe svc tstream-deb的结果
标签: docker kubernetes minikube kubernetes-nodeport