Introduction
Overview
Klutch is a Kubernetes-native platform that simplifies the orchestration of resources and data services across diverse cloud environments and multiple Kubernetes clusters. It enables on-the-fly provisioning of services by multiple application Kubernetes clusters using a declarative interface. It caters to both the needs of platform operators and application developers, as it simplifies both the hosting as well as the consumption of data services.
Key Features
- Multi-cluster Management: Orchestrate resources and data services across many Kubernetes clusters.
- On-demand Provisioning: Allow App Clusters to provision services dynamically as needed.
- Declarative Interface: Utilize a unified Kubernetes-native declarative approach for data service provisioning and consumption.
- Unified Control: Manage resources and data services across multiple environments from a single point.
- Dual-focused Design: Simplify operations for both platform operators and application developers.
- Extensible Architecture: Plugin-based architecture facilitates easy integration of new resource types and cloud providers.
Architecture Overview
Overview of System Architecture and Developer/Operator Interactions
-
Developers
- Interact with their Kubernetes clusters to request and use remote resources.
- Define data service requirements using Custom Resources, initiating automated provisioning and deployment processes.
-
App Clusters
- Request services from the Control Plane Cluster.
- Utilize Klutch-bind to subscribe and enable usage of Klutch's APIs across different Kubernetes clusters.
- Synchronize resource specifications, status, and additional information with the Control Plane Cluster.
-
Platform Operators
- Configure and manage available remote resources through the Control Plane Cluster.
- Oversee the entire system, ensuring smooth operation.
-
Control Plane Clusters
- Manage the entire ecosystem using the centralized control plane.
- Process service requests from App Clusters.
- Utilize Crossplane for managing and provisioning cloud-native resources across multiple cloud providers and on-premise environments.
- Manage bidirectional synchronization of resource specifications, status, and additional information with App Clusters.
- Key functionalities include:
- Maintain a list of available resources.
- Handle the actual provisioning of resources in target environments.
- Provide system-wide observability.
-
Cloud Providers & On-Premise Infrastructure
- Serve as the actual environments where resources are provisioned.
- Support hybrid and multi-cloud deployment models.
note
For a detailed breakdown of components and their interactions, please refer to the "Core Concepts" section.