Karmada Finally Brings Multicloud Control to Kubernetes

发布时间 2024-01-11 20:49:54作者: 张同光

https://thenewstack.io/karmada-finally-brings-multicloud-control-to-kubernetes/

 

Karmada Finally Brings Multicloud Control to Kubernetes

Unhappy with KubeFed stagnation, an Asian-led group of businesses developed Karmada, an open source multicloud cluster management system that has just won approval from the CNCF.
Dec 12th, 2023 11:33am by Joab Jackson
Featued image for: Karmada Finally Brings Multicloud Control to Kubernetes
Feature image via Pexels; logo from the CNCF.

With more than 500 contributors from over 60 organizations, the Karmada project indicates a strong interest in making Kubernetes the de facto distributed workload orchestrator for cloud providers.

This week, the Cloud Native Computing Foundation­’s Technical Oversight Committee (TOC) has voted to accept Karmada as a CNCF incubating project.

Karmada provides a way to run Kubernetes clusters across different cloud providers, through a set of Kubernetes-native APIs and advanced scheduling capabilities. It requires no changes to the applications themselves.

The idea with Karmada is to make it easier for users to easily switch workloads across different cloud providers. Right now, the major cloud providers all have slightly different approaches to offering Kubernetes as a service. It would provide a single point of access for authentication, configuration delivery and service management while reducing potential lock-in from cloud vendors.

Issues with KubeFed

“Karmada fills gaps in several areas around scheduling and orchestration for multicloud and multicluster Kubernetes environments, which can provide better performance and lower costs for distributed organizations,” said Nikhita Raghunath, TOC Sponsor for Karmada’s move to incubation, in a statement.

Originally, multicluster workload management was the mission of the Kubernetes Federation (KubeFed) project, though many of the participants of Karmada were looking for more capabilities — such as resource scheduling, fault migration, auto-scaling, service discovery, data automation, and multiplatform cluster lifecycle management.

Moreover, KubeFed did not provide Kubernetes-native APIs, which made it difficult to migrate clusters across clouds.

“So we decided to develop Karmada to satisfy our needs,” wrote Huawei Cloud‘s Kevin Wang and the Industrial and Commercial Bank of China‘s Yifan Shen, in a blog post that introduced Karmada.

Who Is Behind Karmada?

Launched in 2021 and accepted that year as a CNCF Sandbox project, Karmada was a joint project initiated by a number of Asian-based concerns including First Automobile Works, Huawei Cloud, ICBC, SPD Bank, the VIPKid.com translation service, and the xiaohongshu.com media service.

The project counts 23 public adopters of Karmada in production environments, including Daocloud, Trip.com Group, Vivo, and more.

Trip.com used Karmada to build a control plane for a hybrid multicloud, which allowed the travel company to cut costs of architecture migration even with heterogeneous environments. Fault isolation architecture and multicluster HorizontalPodAutoscaler were also selling points for the company, according to Honghui Yue, director of Trip.com container and hybrid cloud team.

The code base has had over 3,500 pull requests on GitHub and has garnered 3,600 stars at the service.

What Is Karmada?

“Karmada originated from the deep accumulation of the community and Huawei Cloud in the field of multicloud management, providing enterprises with a smooth evolution solution from single cluster to distributed cloud architecture,” explained Bruno Zhang, CTO at Huawei Cloud, in a statement.

Architecturally, the Karmada is run by a set of Kubernetes-compatible APIs exposed and extended by the karmada-apiserver.

A separate scheduler (karmada-scheduler) schedules workloads to clusters, focusing on fault domains, cluster resources, Kubernetes versions, and add-ons enabled in the cluster. It can support multidimensional, multiweight, and multicluster scheduling policies.

Custom controller processes are managed by karmada-controller-manager. Each cluster gets an agent (karmada-agent) to synchronize configurations from the control plane.

As the project moves into incubation status, the development team plans to add more features and functionality and is actively adding new features and functionality, including more fine-grained multicluster security, scalability feature to lower latency and increase stability, better observability and deeper integration with other cloud native applications.