【问题标题】:Receive data in browser from service inside Kubernetes Pod在浏览器中从 Kubernetes Pod 中的服务接收数据
【发布时间】:2021-09-01 14:43:46
【问题描述】:

我在 Kubernetes(Google Cloud)中创建了一个 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

请帮帮我。

【问题讨论】:

  • 什么错误?粘贴输出:kubectl get ep -o wide
  • 我已经编辑了你问的问题和输出 NAME ENDPOINTS AGE camera-65-deployment-service 10.72.0.70:5555 165m

标签: python kubernetes google-kubernetes-engine kubernetes-service


【解决方案1】:

我找到了解决办法。

将 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 就可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-23
    • 2012-04-24
    • 2018-06-23
    • 1970-01-01
    • 2021-10-12
    • 2015-07-29
    相关资源
    最近更新 更多