SYDNEY — Sometimes you really do need to get into the weeds. OpenStack and Kubernetes are both complex projects and if you’re interested in taking full advantage of a Kubernetes on OpenStack deployment, you’ll need an understanding of where the two projects interact, how Kubernetes exposes OpenStack resources and which deployment combinations make sense.
This advanced-level 50-minute talk given at the recent Sydney Summit assumes an advanced knowledge of OpenStack and leverages that to build a corresponding advanced understanding of Kubernetes.
It was given by Angus Lees, currently a senior software engineer at Bitnami, who says he got started with OpenStack pretty much by chance. At a previous job, he “accidentally” wrote the OpenStack cloud provider plugin that was included with Kubernetes 0.15 – and he has been the primary maintainer ever since.
He goes into specific detail of where and how OpenStack is represented in the Kubernetes codebase, with a high-level description of the Kubernetes architecture for context. He also takes you through a tour of OpenStack provider: Instances, zones, load balancers, routes, as well as the Cinder volume plugin and the Keystone authenticator plugin.
You’ll learn the various points of integration between Kubernetes and OpenStack and how to influence the various automatic processes. You’ll also gain an understanding of some of the Kubernetes internals, and how to navigate the Kubernetes code to find the answers to future questions.
Lees also offers up a recommended deployment:
- Dedicated Kubernetes cluster per hostile tenant
- Three dedicated controller VMs for etcd/apiserver/controllers
- Ideally spread across separate AZs
- VMs for worker nodes:
- Want enough for multi-AZ coverage (2-3 AZs depending on workload)
- After that, size for fewer/larger VMs
- Controller and worker VMs all on dedicated neutron private network
- LBaaS loadbalancer pointing to apiserver(s)
- LBaaS and floating-ip network for k8s Service
Check out the video below or download the slides here.