在浏览器中从 Kubernetes Pod 内的服务接收数据

Receive data in browser from service inside Kubernetes Pod

我在 Kubernetes(Google 云)中创建了一个 pod,并通过 imagezmq 创建了它的流数据。

Python 流式传输数据的代码(在 Kubernetes Pod 内)-

import imagezmq

sender = imagezmq.ImageSender(connect_to='tcp://127.0.0.1:5555', REQ_REP=False)
sender.send_image('rpi_name',data)

我想像这样从我的系统访问 pod 外部的数据。

image_hub = imagezmq.ImageHub('tcp://34.86.110.52:80', REQ_REP=False)
while True:
    rpi_name, image = image_hub.recv_image()
    yield (b'--frame\r\n'
           b'Content-Type: image/jpeg\r\n\r\n' + image.tobytes() + b'\r\n')

我尝试创建一个外部负载平衡,但它没有用。我不知道该怎么做

负载平衡 YAML-

apiVersion: v1
kind: Service
spec:
  clusterIP: 10.72.131.76
  externalTrafficPolicy: Cluster
  ports:
  - nodePort: 31145
    port: 80
    protocol: TCP
    targetPort: 5555
  selector:
    app: camera-65
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: 34.86.110.52

请帮助我。

我找到了解决方案。

正在将 ip 从 127.0.0.1 更改为 0.0.0。为我解决了这个问题。

import imagezmq

sender = imagezmq.ImageSender(connect_to='tcp://0.0.0.0:5555', REQ_REP=False)
sender.send_image('rpi_name',data)

然后公开具有 LoadBalancer 类型的 pod 就完成了工作。