I have installed a k8s cluster using kubesparay on 5 servers (3 managers en 5 workers). I’d like to expose the k8s api to public. So i have an ingress to allow access to HTTPS api using the kubernetes service created by default by kubespray. It works for some command, but “exec” raise an error: “Upgrade request required”
So i have tried to plug a ladbalancer IP directly to the kubernetes service, but the IP is not reachable from outside (just for this service if i use this ip on another service, it works).
How can I expose kubernetes service to public using a loadbalancer IP (provisionned by metallb) ??
I have installed a k8s cluster using kubesparay on 5 servers (3 managers en 5 workers). I’d like to expose the k8s api to public. So i have an ingress to allow access to HTTPS api using the kubernetes service created by default by kubespray. It works for some command, but “exec” raise an error: “Upgrade request required”
Most likely you need to specify the proper IP/network interface.
So i have tried to plug a ladbalancer IP directly to the kubernetes service, but the IP is not reachable from outside (just for this service if i use this ip on another service, it works).How can I expose kubernetes service to public using a loadbalancer IP (provisionned by metallb) ??
Is the traffic not reaching the nodes? Can you run tcpdump, for example?
Also, are you using BGP or layer 2 mode? And are you using external Traffic Policy? If you are, I can imagine that the speaker component is not scheduled to master due to taints, for example.
But please share more about your setup so we can have a better understanding. Please try to narrow it down as far as you can, like is traffic reaching nodes (tcpdump for checking, for example)? Can you access using the nodeIP:nodePort? At which hops can you trace the request and where is being dropped?