<p>I have a Kubernetes service (a Python Flask application) exposed publicly on port 30000 (All Kubernetes NodePorts have to be in the range 30000-32767 from what I understand) using the LoadBalancer type. I need for my public-facing service to be accessible on the standard HTTP port 80. What's the best way to go about doing this?</p>

<p>If you don't use any cloudproviders, you can just set <code>externalIPs</code> option in service and make this IP up on node, and kube-proxy will route traffic from this IP to your pod for you.</p>

<pre><code>{
    "kind": "Service",
    "apiVersion": "v1",
    "metadata": {
        "name": "my-service"
    },
    "spec": {
        "selector": {
            "app": "MyApp"
        },
        "ports": [
            {
                "name": "http",
                "protocol": "TCP",
                "port": 80,
                "targetPort": 9376
            }
        ],
        "externalIPs" : [
            "80.11.12.10"
        ]
    }
}
</code></pre>

<p><a href="https://kubernetes.io/docs/concepts/services-networking/service/#external-ips" rel="noreferrer">https://kubernetes.io/docs/concepts/services-networking/service/#external-ips</a></p>
