I had 1 mission this weekend, get OpenFaas Cloud working on my home server. Disclaimer, I know very little about Kubernetes.
I have been following the OpenFaas Cloud guide here. The slack group has been very helpful but I still stuck: https://github.com/openfaas-incubator/ofc-bootstrap
So I have a kubernetes cluster on a host machine(Ubuntu 16.04). Its IP is 192.168.0.98.
I would like to map port 80 on my host(192.168.0.98) so that it sends the traffic to the LoadBalancer(10.104.107.60)
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 6h30m
nginxingress-nginx-ingress-controller LoadBalancer 10.104.107.60 <pending> 80:31166/TCP,443:30837/TCP 4h42m
nginxingress-nginx-ingress-default-backend ClusterIP 10.97.123.87 <none> 80/TCP 4h42m
The LoadBalancer is running nginx-ingress, when I asked about the port forwarding on the OpenFaas group they mentioned:
Nginx -> router -> auth -> gateway -> function
On the cloud a load balancer gets an IP and you set the DNS then accessing the load balancer corresponds to nginx You are on premise so you need to edit your nginx config so that it binds to port 80/443 or use HAProxy on the host to forward to the nginx you have running on the node inside the cluster.
This went a little beyond my skillset :(
Assuming Hyper-V level port forwarding is set up as you mentioned, you'll want to switch the main Service from a LoadBalancer to a NodePort and either hardwire a particular node port or forward whichever happens to be picked.
You can quite easily change the LoadBalancer service type to NodePort one, by upgrading nginx-ingress-controller`s corresponding helm chart:
helm upgrade nginxingress stable/nginx-ingress --set \
controller.service.type=NodePort --recreate-pods
You should be able now to hit the openfaas gateway via http://localhost_ip:node_port/