Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Kubernetes integration for Nelson #49
Broadly this looks fantastic - thanks for putting the work in dude!
@@ Coverage Diff @@ ## master #49 +/- ## ========================================= - Coverage 62.76% 59.57% -3.2% ========================================= Files 129 129 Lines 4034 4245 +211 Branches 107 104 -3 ========================================= - Hits 2532 2529 -3 - Misses 1502 1716 +214
So my goal for this PR is to get Nelson running on a single K8s cluster.. with that in mind I think these are the missing pieces:
Health check algebra is just a matter of getting the other PR merged and then implementing it, should be straightforward.
For service discovery it seems at least short term we have 2 options:
For load balancing we have a couple options:
Seems to be the predominant pattern in Kubernetes, or rather nobody I've asked has refuted me on that claim yet. This means all requests go to the same IP address, share the same load balancer (including # of nodes handling requests, etc.) and have two options for routing:
spec: rules: - host: foo.bar.com http: paths: - backend: serviceName: s1 servicePort: 80 - host: bar.foo.com http: paths: - backend: serviceName: s2 servicePort: 80
spec: rules: - host: foo.bar.com http: paths: - path: /foo backend: serviceName: s1 servicePort: 80 - path: /bar backend: serviceName: s2 servicePort: 80
Seems to be not that common in Kubernetes, or at least doesn't seem to be a direction the Kubernetes folks are heading. This would however match more closely with Nelson's current design of exposing a load balancer per service.
I don't have many thoughts re: single vs. multiple ingress ATM, I do think many users currently do not operate at a scale/domain where having a single ingress point matters much? At least it doesn't for us, and we can certainly just implement both suggestions I made above and somehow make loadbalancer implementation pluggable. I do agree the multiple loadbalancer thing is ultimately more scalable though.