Kubernetes Multi-cluster management with KubeShpere.

Kubernetes Multi-cluster management with KubeShpere.

KubeSphere is an open source platform built for streamlined DevOps workflow with Kubernetes cluster management powered by full-stack automation. Its user-friendly GUI interface helps enterprises build and manage feature-rich, robust, and scalable applications. With KubeSphere installed, users can quickly deploy Kubernetes clusters on the cloud, hybrid or on-prem locations, avoiding teams locked into a single-vendor ecosystem by installing and maintaining Kubernetes clusters with efficient, flexible network solutions.

KubeSphere is a distributed operating system for cloud-native application management, using Kubernetes as its kernel.

How does Kubeshphere work under the hoods

arch.png

KubeSphere uses REST APIs for the external systems to connect to its backend

Kubeshpere provides out-of-the-box tools and features for an organization's Infra, Developer, and DevOps teams.

  • Infra teams can leverage resource utilization features to reduce infrastructure costs like support for multi-cloud and Kubernetes multi-cluster management

  • Developer teams can now focus on tasks on their hands and not worry about the steep learning curve of learning cloud-native stack to deploy their applications. Kubeshpere provides automated deployment tools tailored for any application environment.

  • Operation teams in an organization can use the inbuilt processes for continuous deployment, test, release, upgrade, and scaling of their applications using easy to navigate web-terminal and graphical interface.

KubeSphere installation

Users who are relatively new to the KubeSphere and are keen on adopting the Container platform can utilize the All-in-one installation mode to get started. This procedure will provide both the Kubernetes and Kubephere on the user's machine in a hassle-free manner with minimum configuration needed. This required users to use a CNCF conformance varified light weight open-source tool known as Kubekey to easily set up Kubernetes cluster on public clouds or data centers. Kubekey can also be utilized to install other cloud-native addons and upgrade and scale your Kubernetes cluster.

Apart from installing a KubeSphere instance on a Linux machine, users also have an option to deploy it on an existing Kubernetes cluster hosted on any of the cloud providers or on-premises. This enables KubeSphere to interact with Kubernetes API to manage the resources of Kubernetes clusters.

Features

KubeSphere comes bundled with robust and secure features boasting all the required functionalities for deploying and managing Kubernetes clusters. Among many of the out-of-box features, KubeSphere offers, Multi-cloud management features are one we will discuss next.

Multi-cluster management

One of the coolest features KubeSphere has to offer is its Multi-cluster management feature. As the IT world is facing continuous challenges to deploy their applications across locations, geographies, and the cloud. KubeSphere, to address this pressing demand of the developer community has gone through a process of significant upgrades to provide its users with the Multi-cluster management feature. It basically means communication between different Kubernetes clusters by managing their network connection. Organizations today have a common and very important need to run and manage multiple clusters across multiple cloud providers or infrastructure. This feature offers users to drive traffic by load balancing, providing isolation between prod/dev environments, enabling cross-cloud backup and disaster recovery, allocating computing resources flexibly for individual clusters, and avoiding vendor lock-in with access to cross-region services with low latency.

KubeSphere provides a unified control plane to distribute replicas of applications to multiple clusters, further leveraging its observability features of centralized monitoring, logging, events, and auditing logs, users can have hassle-free multi-cluster management operations.

How does Multi-cluster management feature work:

multi-cluster.png

As depicted above, before we create a central control plane for managing multiple clusters. A user needs to create a Host cluster, which is a cluster enabled with a multi-cluster feature enabled. This Host cluster with its unified control plane can then manage its Member cluster. Member clusters are KubeSphere clusters without their own control plane. tenents with required permissions can access the control plane from the Host cluster and manage its Member clusters, like viewing and editing resources. Conversely, Member clusters are completely isolated and can not view or edit any resources of other clusters.

Multi-cluster feature in KubeSphere can be enabled in the platform through Direct Connection in a scenario where the host cluster and member cluster are in the same private network or subnet or through Agent connection where the member cluster connects to the host cluster through the agent using a tool called Tower, which is network tunnel used to proxy KubeSphere API requests to member clusters.

Apart from all KubeSphere components, the KubeSphere App Store serves as a global pool of applications for all clusters, including Host and Member clusters. This feature also needs to be enabled in Host Cluster for utilization of some of the functions in the App Store on Member clusters.

Other features

Along with the above feature, KubeSphere also comes bundled with rich features as follows:

Istio-based Service Mesh is a set of Isitio, Envoy, and Jaeger in a unified user interface to use and manage these tools. Service Mesh feature in KubeSphere provides fine-grained traffic management, observability, tracing, and service identity and security management for a distributed application.

KubeSphere's Observability feature provides users with customized monitoring of various resources and alerts for any issues in the system, KubeSphere is packed with a self-updating monitoring feature with simple to interact GUI, which streamlines the process of operation and maintenance. To personalize the monitoring of the resources, users have the choice to configure the metrics and the form in which the said resources need to be monitored. To enable cohesion between Operating and Maintainance teams, the platform provides monitoring through GUI with open standard APIs to integrate into existing systems.

KubeSphere can provision for many Open source Storage solutions like GlusterFS, CephRBD, and NFS. Similarly, for Networking solutions, the platform provides Open source solutions such as Calico and Flannel.

It also comes bundles with DevOps support like Managing CI/CD Pipelines, and Source-to-Image feature for building automated workflow for building reproducible container images from source code. Similarly, Binary-to-Image for automated workflow for building reproducible container images from binary.

Other than all the features discussed above, the KubeSphere platform enables users to integrate other 3rd party tools for better management, maintenance, and maneuvering of Kubernetes clusters. But, of all the other features, the Multi-cluster management feature of the platform stands out as one of the key features of the KubeSphere.