<p>My dockerized service (webrtc server) uses both TCP and UDP transport protocols. I'm working with Azure Kubernetes service. As you know we cannot create LoadBalancer service in Kubernetes with both TCP and UDP proto (more info <a href="https://github.com/kubernetes/kubernetes/pull/64471" rel="nofollow noreferrer">here</a>)</p>

<p>Also, I've tried to create two services:  </p>

<ul>
<li>one for TCP ports</li>
<li>one for UDP</li>
</ul>

<p>bind them with one public IP, but gets: "Ensuring load balancer" message.</p>

<p>The only solution is to use NodePort, but in Azure its not working for me (connection timeout).  </p>

<p>Here my service yaml:</p>

<pre><code>apiVersion: v1
kind: Service
metadata:
  name: mcu
spec:
  selector:
   app: mcu
  ports:
  - name: mcu
    nodePort: 30000
    port: 8080
    protocol: TCP
  - name: webrtc
    nodePort: 30003
    port: 10000
    protocol: UDP
  type: NodePort
  externalIPs:
  - &lt;ext IP&gt;
</code></pre>

<p>The support for mixed TCP/UDP protocols depends on the cloud provider. For example, <a href="https://github.com/kubernetes/kubernetes/pull/67986" rel="nofollow noreferrer">Azure</a> supports it but AKS may not have a version that supports it as of this writing.</p>

<p>Not clear what is giving you a <code>connection timeout</code> but it should work fine as long as you point the Azure UDP load balancer to the<code>30003</code> NodePort.  You can also test locally in a cluster node sending UDP traffic to the Service <code>ClusterIP:10000</code></p>

<p>You can also check if your service has endpoints:</p>

<pre><code>$ kubectl describe svc &lt;service-name&gt;
</code></pre>

<p>Or/and:</p>

<pre><code>$ kubectl get ep
</code></pre>
