6 ms·
Kubernetes does use dead simple off-the-shelf software for ingress and load balancing. That software though, unfortunately, has a lot of knobs, and what "Ingres
by AaronFriel 7y ago
Kubernetes does use dead simple off-the-shelf software for ingress and load balancing. That software though, unfortunately, has a lot of knobs, and what "Ingress" and "Service" resources do is make sure those knobs are turned to the right settings.
The nginx ingress controller for example, under the hood, just generates and applies a big ol' nginx config! You can extract it and view it yourself, or extend it with a Lua script if you want to be fancy and do some FFI inline with processing the request, etc.
- darkarmani 7y agoIs it hard to integrate a (HA) hardware load-balancer in front instead?
- elsonrodriguez 7y agoThe easy way to do this is with NodePorts, wherein you configure your LB with all the nodes in your cluster being app servers on a certain port for a certain app. However you will lose some performance as there's some iptables magic under the hood. Beyond that there's a sea of options for more native integrations that will depend on whether your LB vendor has an K8s integration, how friendly your networking team is, and how much code you're willing to write.
- merb 7y agofor baremetal you can use metallb or kube-router if you have bgp infra. no need for hardware ha lb
- eeZah7Ux 7y agoThat's the opposite of dead simple and k8s tries hard to make things more complex than needed.
- hinkley 7y ago> That software though, unfortunately, has a lot of knobs Lots of people have different definitions of 'easy' which is why I didn't say 'easy'. But how did you get this far off the rails with 'dead simple'?
- cpuguy83 7y agoSame with swarm, it's just using IPVS at L4. Does not provided anything at L7, it's up to you to provide such a service on the cluster.
- jhanschoo 7y ago> The nginx ingress controller for example, under the hood, just generates and applies a big ol' nginx config! I learned the hard way that GKE, in using GCP's load balancers don't support the same syntax for Ingress patterns as when you use an nginx Ingress. Definitely read the documentation thoroughly!