Clusterpedia is an open-source project under the Cloud Native Computing Foundation (CNCF) that serves as an encyclopedia for Kubernetes clusters, focusing on the synchronization, search, and management of resources across multiple Kubernetes clusters. Inspired by Wikipedia, Clusterpedia aims to provide a unified platform where users can not only search and view resources but, in the future, also control and edit them across clusters, making multi-cluster management more accessible and efficient.
The core purpose of Clusterpedia is to address the challenges of managing resources in environments where multiple Kubernetes clusters are deployed, such as hybrid cloud or multi-cloud infrastructures. It can be deployed as a standalone platform or integrated with popular multi-cloud management solutions like Cluster API, Karmada, Clusternet, vCluster, and KubeVela. Clusterpedia automatically synchronizes resources from clusters managed by these platforms, reducing manual maintenance and acting as a seamless internal component.
One of Clusterpedia’s standout features is its compatibility with Kubernetes OpenAPI, allowing users to retrieve resources using standard Kubernetes tools such as kubectl, client-go, or controller-runtime/client. It supports a wide range of Kubernetes versions (1.10+), and can automatically convert and unify resource versions, enabling consistent querying even when clusters run different Kubernetes versions. For example, deployments can be retrieved regardless of whether they are defined as v1, v1beta2, or v1beta1 in the underlying clusters.
Clusterpedia offers advanced and flexible search capabilities. Users can filter resources by cluster, namespace, name, creation time, owner, labels, and fields. It supports multi-cluster label selectors, enhanced field selectors, and custom search conditions, making it possible to perform complex queries across all synchronized clusters. The platform also introduces the concept of "Collection Resources," which allows users to retrieve multiple resource types (such as Deployments, DaemonSets, and StatefulSets) through a single API call.
The architecture of Clusterpedia is modular and consists of four main components: the Clusterpedia APIServer (which registers with the Kubernetes APIServer via Aggregated API and provides a unified service entry), the ClusterSynchro Manager (which handles resource synchronization), the Storage Layer (which interfaces with various storage backends), and the Storage Component (such as MySQL, PostgreSQL, Redis, or future support for graph databases and Elasticsearch). This design ensures high availability, low memory usage, and adaptability to different storage solutions without being tied to a specific backend.
Clusterpedia is optimized for performance and reliability, with features like informer-based caching for low memory consumption, automatic synchronization based on cluster health, and support for synchronizing all custom resources and wildcards. It provides a unified search entry for both master and multi-cluster resources, making it easy to access and manage resources from a single endpoint.
In summary, Clusterpedia is a comprehensive solution for organizations managing multiple Kubernetes clusters. It simplifies resource synchronization, provides powerful and flexible search capabilities, and is designed to integrate seamlessly with existing multi-cloud platforms. Its extensible architecture and focus on compatibility and performance make it a valuable tool for cloud-native operations teams seeking to unify and streamline their multi-cluster Kubernetes environments.