8 comments

[ 2.5 ms ] story [ 32.4 ms ] thread
Disclosure: I work at Google on Kubernetes

EASILY one of the most requested features, Kubernetes 1.2 supports integrated L7 routing and SSL.

I should note the title of the article should be "L7 Routing" not "L7" (obviously)
I have definitely been waiting for this for a long time!

I read through the tutorial, but haven't had a chance to implement it. Two questions:

1) I run some services on DigitalOcean. Does this mean I can run a Kubernetes cluster, designate my controller as my Ingress, point my DNS entry there and it will load-balance? 2) is this a different type of load balancer type in the Service definition?

This could be helpful and useful on my ESXi clusters too.

> 1) I run some services on DigitalOcean. Does this mean I can run a Kubernetes cluster, designate my controller as my Ingress, point my DNS entry there and it will load-balance?

Yeah, you'd need to deploy the nginx controller. Or the service-loadbalancer, which doesn't yet handle Ingress but conceptually does the same loadbalancing at L7 with plain Kubernetes Services. Both these can be found at: https://github.com/kubernetes/contrib

>2) is this a different type of load balancer type in the Service definition?

No, the community is debating moving L4 loadbalancing out of Services and keeping Services to mean "Backend services". Ingress spans services and encapsulates higher level concepts that require more context (eg: use a single IP to loadbalance entire cluster based on hostname vs type=loadbalancer which allocates an LB per service, SNI, atomic updates to a single URL map for blue/green deployment etc).

Excellent work here! I've only started looking into Kubernetes recently, but it's obvious that a truly magnificent amount of work has been sunk into this project, and the sophistication of its features really shows it.

One thing that's probably obvious, but which I was having trouble confirming specifically while reading the article: are Ingress load balancers updated automatically as new pods are added or removed from a backing service?

Also, one other random thought for any Kubernetes engineers that haven't to be canvasing the thread: I (and I suspect I'm not alone here) would really like to have a way to play around with Kubernetes a bit, but am having trouble committing to launching a full cluster on GCE or AWS. I could fire one up for a few hours at relatively low cost, but it would be more interesting to deploy a toy app to one and observe it over a long period. It might be nice if there was a fast bootstrap script that would allow you to bootstrap Kubernetes on $5 Digital Ocean boxes (like the scripts that already exist for GCE and AWS) with the understanding that the cluster is nowhere near production ready.

To your first question: yes. The load balancers are updated automatically as containers die and come up. To your second, you can deploy to vagrant pretty easilyhttps://github.com/kubernetes/kubernetes/blob/release-1.2/do.... cloud provider integration has been very community driven, I'm sure the core team would be more than happy to help integration with DO (if there isn't already a bug open and work on going, on mobile right now so can't confirm).
Thanks for the reply!

Although it's generally fun to run these things in the cloud so that you can get a working service online, I'll definitely give the Vagrant deploy a shot.

OpenShift Origin had it for a while AFAIK, nice to see it in vanilla Kubernetes