【问题标题】:LoadBalancer or Nodeport service not connecting to pod inside minikube from localhostLoadBalancer 或 Nodeport 服务未从本地主机连接到 minikube 内的 pod
【发布时间】: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


【解决方案1】:

似乎问题出在使用 externalIP:nodePort 作为网络地址。

它应该是

externalIP:servicePort(80)

或者

nodeIP:nodePort(30001)

【讨论】:

    猜你喜欢
    • 2019-10-22
    • 1970-01-01
    • 2020-12-15
    • 2021-05-02
    • 2020-08-05
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    • 2021-01-02
    相关资源
    最近更新 更多