The Kubernetes Current Blog

Unified Management of Multi-OS Kubernetes Clusters

One of the most common enterprise scenarios that engineers deal with today is managing multi-OS platforms or applications. This requires teams to run separate environments for each workload type based on the operating system (OS) and system architectures leading to additional costs and complexities.

Challenges with Multi-OS cluster management

For example, let’s say you want to deploy and test a Windows application or an ARM-based application, but you are running a Linux environment. An efficient solution to this scenario would be a hybrid Kubernetes cluster containing windows and arm worker nodes.

The solution might sound simple, but this approach has some challenges. Kubernetes inherently does not understand which operating systems your application pod should be deployed on by default, and it will deploy the application wherever it finds a fit, which could lead to incompatibility with the underlying operating system or the system architecture.

Assigning Pods to Nodes

To overcome this problem, Kubernetes has introduced the concept of node selectors which is a key-value pair that defines the assignment for a pod based on the capabilities specified in the selector. In the Pod specification, you can utilize this selection to verify that the pod is only deployed to nodes with the required operating system in place.

Provision K8s Clusters using Multiple Operating Systems

Recently we announced Rafay’s support for unified Kubernetes operations for converged infrastructure. Rafay provides a seamless way of provisioning a Kubernetes cluster with worker nodes running different operating systems or architectures. This capability enables users to deploy multiple types of workloads on a single K8s cluster, containing nodes on different operating systems and architectures. This type of Hybrid cluster provides numerous benefits if you determine ahead of time the node types and the workloads you intend to deploy.

Rafay’s platform simplifies the lifecycle management of this hybrid Kubernetes cluster, including upgrades and scaling.

Watch this video to see how easy it is to manage both Linux and Windows workloads on the same Kubernetes cluster through Rafay’s Kubernetes Operations Platform.

Let’s look at a couple of sample Pods for Windows and Linux

Pod specification for Windows node:


apiVersion: v1
kind: Pod
metadata:
labels:
env: win
name: winnapp
spec:
containers:
-
image: winnappimage
imagePullPolicy: IfNotPresent
name: winnappimage
nodeSelector:
kubernetes.io/os: Windows

Pod specification for Linux node:


apiVersion: v1
kind: Pod
metadata:
labels:
env: linux
name: linuxapp
spec:
containers:
-
image: linuximage
imagePullPolicy: IfNotPresent
name: linuxapp
nodeSelector:
kubernetes.io/os: Linux

By leveraging these kinds of hybrid K8s clusters, users can reuse cluster-wide services for different types of workloads and their underlying architectures. This enables enterprises to reduce the overall infrastructure management costs and complexity. Teams can leverage containers and Kubernetes to reduce cost and management overhead by converging operations into a single pane of glass.

Learn more about how Rafay helps manage converged infrastructure by reading through our product documentation.

Author

Trusted by leading companies