在同一端口上创建具有多种协议的 LoadBalancer

在同一端口上创建具有多种协议的 LoadBalancer

我正在尝试在 GCP 上的 Kubernetes 中设置 DNS 服务器。我的服务如下所示:

  kind: Service
  apiVersion: v1
  metadata:
    name: coredns-one
  spec:
    ports:
      - name: cdns-one
        port: 53
        protocol: UDP
      - name: cdns-one-tcp
        port: 53
        protocol: TCP
    selector:
      name: coredns-one
    type: LoadBalancer

当我尝试在 GCP 上创建服务时,出现以下错误:

 The Service "coredns-one" is invalid.
 spec.ports: Invalid value: [{"name":"cdns-one","protocol":"UDP","port":53,"targetPort":53,"nodePort":0},{"name":"cdns-one-tcp","protocol":"TCP","port":53,"targetPort":53,"nodePort":0}]: cannot create an external load balancer with mix protocols

我已经将我们的 Kubernetes 版本升级到 1.3,我相信这个合并后应该会添加对此配置的支持,但我无法验证 Google 的负载平衡器是否支持它,或者我这边是否存在配置错误。任何帮助都值得感激,谢谢!

答案1

当前master分支甚至不支持此功能。如果你检查这个 if 语句,你会发现它拒绝任何具有多种协议的服务规范。创建两个不同的服务。

相关内容