Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A few questions #22

Open
mateuszdrab opened this issue Feb 3, 2022 · 2 comments
Open

A few questions #22

mateuszdrab opened this issue Feb 3, 2022 · 2 comments

Comments

@mateuszdrab
Copy link

Hi, thank you for this maintaining this project.
I've just implemented kube-vip + cloud-provider instead of metallb to try creating a HA frontend for my cluster.
I have a few questions, sort of an FAQ to ask as I wasn't able to find clear answers to those in the documentation and I want to understand kube-vip well as it is going to be an entry point to the cluster control plane, as such, need to be able to troubleshoot it with deeper understanding.

  1. When running a command with -w, it works fine but after some time of watching, I get the following error. 192.168.88.0 is the VIP
an error on the server ("unable to decode an event from the watch stream: read tcp 192.168.0.147:53040->192.168.88.0:6443: wsarecv: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.") has prevented the request from succeeding
  1. Kubernetes exposes a default service called kubernetes which endpoints point to the nodes hosting the control plane. I'm confused why we can't just use that service and change it to type LoadBalancer instead of having to use kube-vip. Is that even possible (haven't tried yet). If so, what would the benefits of kube-vip be over that approach?
  2. Is is possible to expose a service on an IP outside of the provided range/cidr providing that loadBalancerIP: "x.x.x.x" is provided in the service spec? I tried that and it doesn't seem to work.
  3. MetalLB has the ability to 'request' an IP of a specific range by specifying in the spec, do you think this will be possible in kube-vip anytime soon?
  4. Why is the cloud controller needed and the command argument --services in kube-vip? Do I understand right that the cloud controller just assigns the IP and kube-vip then picks it up from the service and starts listening to it?
  5. In BGP mode, I don't think the UPNP and DHCP features can be utilized. Is it worth updating the docs to explicitly state that?
  6. Regarding point 6, Kubernetes supports loadBalancerClass now (https://kubernetes.io/docs/concepts/services-networking/_print/#load-balancer-class), meaning we should be able to run 2 instances of kube-vip. Theoretically one could be in ARP mode to allow usage of DHCP/UPNP mode. Will this feature be supported?
  7. If UPNP was to be used, would all services get published through it or can this be controlled per service?
  8. Lastly, in UPNP mode, would external IP be discovered and written back to the service spec?

Thanks for your time
Mateusz

@Mtze
Copy link

Mtze commented Feb 4, 2022

I am very curious about the answer to question 2 :)

@mateuszdrab
Copy link
Author

mateuszdrab commented Feb 4, 2022

I am very curious about the answer to question 2 :)

Me too, I am having weird issues with kube-vip.
TCP connection breaking to API server non-stop, requests through ingress taking long time.
Just troubleshooting to see if it's an asymmetric routing issue with my firewall.
I also noticed, I can use the VIP to access services exposed on the host IP, this is very weird.
Edit: it was asymmetric routing.
This leaves the question still why I can connect to ports exposed on the host using the VIP

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants