OpenStack and Kubernetes

Simon Zhao
3 min readJun 6, 2020

--

from Business News Daily

This article would analyze the OpenStack and its relationship with Kubernetes, e.g. How to integrate them or how do they leverage each other to do the job?

What is OpenStack?

OpenStack is an operating system of the cloud computing. According to its official website, its definination is:

OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed and provisioned through APIs with common authentication mechanisms

The key point is:

  • It’s an OS of cloud: it manages the cloud resources like CPU / memory / Storage / Networks etc.
  • It can be managed by API or a dashboard.

And according to Wikipedia, OpenStack is:

OpenStack is a free open standard cloud computing platform, mostly deployed as infrastructure-as-a-service (IaaS) in both public and private clouds where virtual servers and other resources are made available to users.

The software platform consists of interrelated components that control diverse, multi-vendor hardware pools of processing, storage, and networking resources throughout a data center.

The key point is:

  • It can be used in private or public cloud.
  • It’s mostly used as an IaaS.
  • It supports a large variety of hardware or software vendors.

What is OpenStack composed of?

In reality, OpenStack is composed of a large number of components/projects/services, which are even not related to each other.

This is the landscape of OpenStack by now (2020.6), it contains 44 core components.

What is Kubernetes?

If software is eating the world, then kubernetes is eating the world of software. It’s an orchestration engine of containers, and it’s the core of Cloud-Native computing.

This is an architecture of Kubernetes:

from nakivo.com

As you can see, kubernetes is built on docker engine, and its working node is actually an VM or a bare-metal server, which can be deployed and manged by OpenStack.

How does OpenStack relate to Kubernetes?

  1. Kubernetes on OpenStack

In this mode, kubernetes is deployed on the OpenStack VMs or Bare-Metals. It gains ability through the OpenStack API:

  • The Kubernetes can get the load-balancing ability by using OpenStack’s load balancer component Octavia/LBaaS.
  • The Kubernetes can get the shared storage from OpenStack Cinder.
  • The Kubernetes api-server and pod’ serviceAccount can leverage the identity service of OpenStack.

2. Side-by-Side

In this mode, Kubernetes and OpenStack both deployed independently.

  1. The Kubernetes can get network overlay from OpenStack’s Kuryr and Neutron, or share same network with OpenStack by Calico.
  2. The Kubernetes can attach to OpenStack Cinder hosted volumes
  3. The Kubernetes can use OpenStack Keystone as an authorization and authentication backend
  4. The Kubernetes can connect to OpenStack Neutron as a network overlay with OpenStack Kuryr.
  5. The OpenStack can share the same network overlay as a Kubernetes cluster with Neutron drivers for projects like Calico

Conclusion

The OpenStack is a big IaaS platform for private cloud or public cloud, whereas Kubernetes targets for container management, they have some overlap functions. We can leverage the OpenStack as an IaaS platform and use Kubernetes as an container orchestration engine. Kubernetes can be quite stronger with the back of the OpenStack components.

References

Leveraging containers and OpenStack

--

--

Simon Zhao

Security techie, developer, technology manager, software person and app-stuff doer..