update architecture and concepts
Signed-off-by: Kevin Wang <kevinwzf0126@gmail.com>
This commit is contained in:
parent
3a1e271b80
commit
5f8d953756
26
README.md
26
README.md
|
@ -1,29 +1,29 @@
|
|||
# Karmada
|
||||
|
||||
Karmada is a multi-cluster management system speaks Kubernetes native API.
|
||||
Karmada (Kubernetes Armada) is a multi-cluster management system speaks Kubernetes native API.
|
||||
Karmada aims to provide turnkey automation for multi-cluster application management in multi-cloud and hybrid cloud scenarios, and intended to realize multi-cloud centralized management, high availability, failure recovery and traffic scheduling.
|
||||
|
||||
Its key capabilities include:
|
||||
|
||||
- Cross-cluster applications managements based on k8s native API, allow user migrate apps from single cluser to multi-cluster conveniently and quickly.
|
||||
- Cross-cluster applications managements based on K8s native API, allow user migrate apps from single cluser to multi-cluster conveniently and quickly.
|
||||
- Support provisioning or attaching Kubernetes clusters for centralized operations and management.
|
||||
- Cross-cluster applications auto-scaling ,failover and loadbalancing on multi-cluster.
|
||||
- Advanced scheduling strategy: region, available zone, cloud provider, cluster affinity/anti-affinity.
|
||||
|
||||
----
|
||||
|
||||
## Concepts
|
||||
## Architecture
|
||||
|
||||

|
||||
|
||||
The Karmada Control Plane consists of the following components:
|
||||
|
||||
- ETCD for storing the karmada API objects
|
||||
- Karmada API server
|
||||
- Karmada API Server
|
||||
- Karmada Controller Manager
|
||||
- Karmada Scheduler
|
||||
|
||||
ETCD stores the karmada API objects, the API server is the REST endpoint all other components talk to, and the Karmada Controller Manager perform operations based on the API objects you create through the API server.
|
||||
ETCD stores the karmada API objects, the API Server is the REST endpoint all other components talk to, and the Karmada Controller Manager perform operations based on the API objects you create through the API server.
|
||||
|
||||
The Karmada Controller Manager runs the various controllers, the controllers watch karmada objects and then talk to the underlying clusters’ API servers to create regular Kubernetes resources.
|
||||
|
||||
|
@ -33,7 +33,21 @@ The Karmada Controller Manager runs the various controllers, the controllers wa
|
|||
3. Binding Controller: the controller watches PropagationBinding object and create PropagationWork object corresponding to each cluster with single resource manifest.
|
||||
4. Excution Controller: the controller watches PropagationWork objects.When PropagationWork objects are created, it will distribute the resources to member clusters.
|
||||
|
||||
The following figure shows how Karmada resource relate to the objects created in the underlying clusters.
|
||||
|
||||
## Concepts
|
||||
|
||||
**Resource template**: Karmada uses Kubernetes Native API definition for federated resource template, to make it easy to integrate with existing tools that already adopt on Kubernetes
|
||||
|
||||
**Propagation Policy**: Karmada offers standalone (placement) policy API to define spreading requirements.
|
||||
- Support 1:n mapping of Policy: workload, users don't need to indicate scheduling constraints every time creating federated applications.
|
||||
- With default policies, users can just interact with K8s API
|
||||
|
||||
**Override Policy**: Karmada provides standalone override API for specializing cluster relevant configuration automation. E.g.:
|
||||
- Override image prefix according to member cluster region
|
||||
- Override StorageClass according to cloud provider
|
||||
|
||||
|
||||
The following diagram shows how Karmada resources are involved when propagating resources to member clusters.
|
||||
|
||||

|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
<mxfile host="app.diagrams.net" modified="2020-11-17T02:26:51.886Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36" etag="936TxwyQbYDYvpSatyHZ" version="13.8.8" type="device"><diagram id="d3edZf_nAvSGJ7Mxgo-U" name="Page-1">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</diagram></mxfile>
|
||||
<mxfile host="Chrome" modified="2020-12-04T12:42:49.075Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36" etag="cP3h_CuiCsCoKO2lrsOZ" version="13.9.5" type="device"><diagram id="d3edZf_nAvSGJ7Mxgo-U" name="Page-1">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</diagram></mxfile>
|
Binary file not shown.
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 38 KiB |
File diff suppressed because one or more lines are too long
Binary file not shown.
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 57 KiB |
Loading…
Reference in New Issue