title: How to make service TCP/UDP ports externally accessible in Kubernetes?
body: <p>I have many tenants running on one Kubernetes cluster (on AWS), where every tenant has one Pod that exposes one <strong>TCP</strong> port (<strong>not HTTP</strong>) and one <strong>UDP</strong> port.</p>
  
  <ul>
  <li>I don't need load balancing capabilities.</li>
  <li>The approach should expose an IP address that is externally available with a dedicated port for each tenant</li>
  <li>I don't want to expose the nodes directly to the internet</li>
  </ul>
  
  <p>I have the following service so far:</p>
  
  <pre><code>apiVersion: v1
  kind: Service
  metadata:
    name: my-service
    labels:
      app: my-app
  spec:
    type: NodePort
    ports:
      - port: 8111
        targetPort: 8111
        protocol: UDP
        name: my-udp
      - port: 8222
        targetPort: 8222
        protocol: TCP
        name: my-tcp
    selector:
      app: my-app
  </code></pre>
  
  <p>What is the way to go?</p>