An analysis of Kubernetes and OpenStack combinations for modern data centres
Editor’s note: This article was originally published on OpenStack Superuser. CloudTech has the author’s permission to re-publish here.
For many telecom service providers and enterprises who are transforming their data centre to modern infrastructure, moving to containerised workloads has become a priority. However, vendors often do not choose to shift completely to a containerised model.
Data centres have to support virtual machines (VMs) as well to keep up with legacy VMs. Therefore, a model of managing virtual machines with OpenStack and containers using Kubernetes has become popular. In an OpenStack survey conducted in 2018, it was seen that 61% OpenStack deployments are also working with Kubernetes.
Apart from this, some of the recent tie-ups and releases of platforms clearly show this trend. For example:
- AT&T’s three year deal with Mirantis to develop 5G core backed by Kubernetes and OpenStack
- Platform9’s Managed OpenStack and Kubernetes – providing required featured sets bundled in solution stack for the service provider as well as developers. They support Kubernetes on VMware platform as well
- Nokia’s CloudBand release – containing Kubernetes and OpenStack for workload orchestrations
- OpenStack Foundation’s recently announced Airship project aiming to bring the power of OpenStack and Kubernetes in one framework
The core part of a telecom network or any virtualised core of a data centre has undergone a revolution, shifting from physical network functions to virtual network functions (VNFs). Organisations are now adopting cloud-native network functions (CNFs) to help bring CI/CD-driven agility into the picture.
This journey is shown in one of the slides from the Telecom User Group session at KubeCon Barcelona in May, which was delivered by Dan Kohn, the executive director of CNCF and Cheryl Hund, the director of ecosystem of CNCF. (Image source).
According to the slide, presently, application workloads deployed in virtual machines (VNFs) and containers (CNFs) can be managed with OpenStack and Kubernetes, respectively, on top of bare metal or any cloud. The optional part that is ONAP is a containerised MANO framework, which is managed with Kubernetes.
As discussed in birds-of-a-feather (BoF) – telecom user group session delivered by Kohn – with the progress of Kubernetes for cloud-native movement, it is expected that CNFs will be a key workload type. Kubernetes will be used to orchestrate CNFs as well as VNFs. VNFs will be segregated with KubeVirt or Virtlet or OpenStack on top of Kubernetes.
Approaches for managing workloads using Kubernetes and OpenStack
Let’s understand the approaches of integrating Kubernetes with OpenStack for managing containers and VMs.
The first approach can be a basic approach wherein Kubernetes co-exists with OpenStack to manage containers. It gives a good performance but you cannot manage unified infrastructure resources through a single pane. This causes problems associated with planning and devising policies across workloads. Also, it can be difficult to diagnose any problems affecting the performance of resources in operations.
The second approach can be running a Kubernetes cluster in a VM managed by OpenStack. This enables OpenStack-based infrastructure to leverage the benefits of Kubernetes within a centrally managed OpenStack control system. Also, it allows full-feature multi-tenancy and security benefits for containers in an OpenStack environment. However, this contributes to performance lags and necessitates additional workflows to manage VMs that are hosting Kubernetes.
The third approach is an innovative one, leaning towards a completely cloud-native environment. In this approach, Kubernetes can be replaced with OpenStack to manage containers along with VMs as well. Workloads take complete advantage of hardware accelerators and Smart NICs, among others. With this, it is possible to offer integrated VNS solutions with container workloads for any data centre, but this demands improved networking capabilities like in OpenStack (SFC, provider networks, segmentation).
Kubernetes versus OpenStack – is it true?
If you looked at the recent VMworld 2019 US event, it was clearly seen that Kubernetes would be everywhere. There were 66 sessions and plenty of hands-on training that will focus only on Kubernetes integration in every aspect of IT infrastructure.
But is that the end of OpenStack? No. As we have already seen, the combination of both systems will be a better bet for any organisation that wants to stick with traditional workloads while gradually moving to a new container-based environment.
How Kubernetes and OpenStack are going to combine
I came across a very decent LinkedIn post by Michiel Manten. He stated that there are downfalls for both containers and VMs. Both have their own use cases and orchestration tools. OpenStack and Kubernetes will complement each other if properly combined to run some of the workloads in VMs to get isolation benefits within a server and some in containers. One way to achieve this combination is to run Kubernetes clusters within VMs in OpenStack, which eliminates the security pitfalls of containers while leveraging the reliability and resiliency of VMs.
What are the benefits?
- Combining systems will immediately benefit all current workloads so that enterprises can start their modernisation progress, maintaining high speed with much lower cost than commercial solutions
- Kubernetes and OpenStack can be an ideal and flexible solution for any form of a cloud or new far-edge cloud where automated deployment, orchestration, and latency will be the concern
- All workloads will be in a single network in a single IT ecosystem. This makes it easier to apply high-level network and security policies
- OpenStack supports most enterprise storage and networking systems in use today. Running Kubernetes with and on top of OpenStack enables a seamless integration of containers into your IT infrastructure. Whether you want to run containerized applications bare metal or VMs, OpenStack allows you to run containers the best way for your business
- Kubernetes has self-healing capabilities for infrastructure. As it is integrated into an OpenStack, it can enable easy management and resiliency to failure of core services and compute nodes
- A recent release of OpenStack software (OpenStack Stein) has several enhancements to support Kubernetes in the stack. A team behind OpenStack Certified Kubernetes installer made it possible to deploy all containers in a cluster within five minutes regardless of the number of nodes. It was previously 10-12 minutes. With this, we can launch a very large-scale Kubernetes environment in 5 minutes
Telecom service providers who have taken steps towards 5G agreed upon the fact that a cloud-native core is imperative for a 5G network. OpenStack and Kubernetes are mature, open-source operating and orchestration frameworks today. Providing agility is the key capability of Kubernetes for data centers and OpenStack has several successful projects for focusing on storage and networking of workloads, and support for myriad applications.
Editor’s note: Download the Calsoft eBook – A Deep-Dive On Kubernetes For Edge – focusing on current scenarios of adoption of Kubernetes for edge use cases, latest Kubernetes and edge case studies, deployment approaches, commercial solutions and efforts by open communities.