UDP响应问题

时间:2016-01-24 03:29:05

标签: docker kubernetes coreos flannel

我遇到了kubernetes端口转发UDP流量的问题。我正在运行coreos baremetal设置,并且过去只使用了fleet来运行我的容器,因此这些容器正常工作,我的网络和端口转发正确设置。我可以手动运行容器和端口前进到它,事情按预期工作,所以似乎kubernetes和UDP正在发生一些事情。我有多个服务无法正常工作,但最容易的是这个笨蛋服务器。以下是从复制控制器开始的设置。

apiVersion: v1
kind: ReplicationController
metadata:
  name: mumble-v0
  labels:
    app: mumble
    version: v0
spec:
  replicas: 1
  selector:
    app: mumble
    version: v0
  template:
    metadata:
      labels:
        app: mumble
        version: v0
    spec:
      containers:
      - name: mumble
        image: coppit/mumble-server
        imagePullPolicy: Always
        resources:
          limits:
            cpu: 0.5
            memory: 500Mi
        ports:
        - containerPort: 64738
          name: mumble
        - containerPort: 64738
          name: mudp
          protocol: UDP

服务本身:

apiVersion: v1
kind: Service
metadata:
  name: mumble
  labels:
    app: mumble
    kubernetes.io/name: "mumble"
spec:
  selector:
    app: mumble
  ports:
  - name: mumble
    port: 64738
  - name: mumble-udp
    port: 64738
    protocol: UDP
  externalIPs: ["10.0.1.19"]

客户端可以连接到服务并查看服务器,但没有正确的语音流量。此语音流量通过UDP发送和接收。环顾四周,我看到有关UDP问题的其他报告似乎与Responses from kubernetes containers getting lostProblems on running a SIP application (UDP) on Kubernetes有关。

有谁知道这里可能出现什么问题或修复?

1 个答案:

答案 0 :(得分:0)

如果您kubectl get svc,您应该看到它打开了UDP TCP端口。在同一端口上支持UDP和TCP的Kubernetes似乎是ongoing issue

如果您更改了端口号,则会收到错误“无法使用混合协议创建外部负载均衡器”(请参阅​​related issue)。

您可以做的是使用相同的静态IP创建两个服务(应该保留):

apiVersion: v1
kind: Service
metadata:
  name: mumble-tcp
  labels:
    project: mumble
spec:
  type: LoadBalancer
  loadBalancerIP: 10.10.10.10
  ports:
    - port: 64738
  selector:
    name: mumble
    project: mumble
---
apiVersion: v1
kind: Service
metadata:
  name: mumble-udp
  labels:
    project: mumble
spec:
  type: LoadBalancer
  loadBalancerIP: 10.10.10.10
  ports:
    - port: 64738
      protocol: UDP
  selector:
    name: mumble
    project: mumble