This section describes the architecture of Deckhouse Kubernetes Platform (DKP).
The section consists of the following subsections:
- C4 model: Overview of the C4 model used to visualize the platform architecture, as well as a description of the DKP architecture at levels 1 and 2 of the C4 model.
- Modules: Description of the DKP module architecture.
- Disaster resilience: Description of the disaster resilience approaches implemented in DKP.
- Updating: Description of the DKP update mechanisms.
- Description of platform component architecture divided in the following subsystems:
This section does not yet cover all DKP subsystems and modules.
Documentation for the remaining components will be added as it becomes available.
DKP architecture
DKP is a platform for managing Kubernetes clusters in various infrastructures — from isolated server environments to public clouds. The platform includes:
- A Kubernetes cluster.
- The Deckhouse controller and the modules it manages.
- Bashible, an agent running as a service on cluster nodes that executes bash scripts to manage nodes.
Modules are grouped into subsystems according to their functional purpose. The Deckhouse controller is also implemented as a module and is the only mandatory module required for the platform to function.
The DKP architecture at the subsystem and module level is described in the C4 model subsection.
Modules
A module is a set of resources and applications designed to extend DKP functionality.
Key modules:
deckhouse: The Deckhouse controller.control-plane-manager: Manages cluster control plane components.node-manager: Manages cluster nodes.
The control-plane-manager and node-manager modules
are not installed when DKP is installed into an existing Managed Kubernetes cluster.
Module contents:
- Helm charts
- Addon-operator hooks
- Build rules for module components (Deckhouse components)
- Other related files
DKP uses the addon-operator project to manage modules. Refer to its documentation to learn how DKP works with modules, module hooks, and module parameters.
For more information about module architecture and developing custom modules, refer to Modules.