This glossary is intended to be a comprehensive, standardized list of Karmada terminology. It includes technical terms that are specific to Karmada, as well as more general terms that provide useful context.
- Aggregated API
Aggregated API is provided by
karmada-aggregated-apiserver. It aggregates all registered clusters and allows users to uniformly access different member clusters through Karmada's
Similar to K8s, ClusterAffinity refers to a set of rules that provide the scheduler with hints on which cluster to deploy applications on.
Graceful eviction means that when a workload is migrated between clusters, the eviction will be postponed until the workload becomes healthy on the new cluster or the
GracePeriodSeconds is reached.
Graceful eviction can help the service to be continuously serviced during multi-cluster failover, and the instance will not drop to zero.
Differentiated configuration policy applicable across clusters.
Overrider refers to a series of differentiated configuration rules provided by Karmada, such as
ImageOverrider overrides the image of workloads.
- Propagate Dependencies(PropagateDeps)
PropagateDeps means that when an application is delivered to a certain cluster, Karmada can automatically distribute its dependencies to the same cluster at the same time. Dependencies do not go through the scheduling process, but reuse the scheduling results of the main application.
Dependencies of complex applications can be resolved through the resource interpreter's
Widely applicable policy for multi-cluster application scheduling.
- Pull Mode
A mode for Karmada to manage clusters. Karmada control plane will not access the member clusters directly, but will delegate the responsibility to the
karmada-agent deployed on the member clusters.
- Push Mode
A mode for Karmada to manage clusters. Karmada control plane will directly access
kube-apiserver of member clusters to obtain cluster status and deploy applications.
Unified abstraction of Karmada, which drives internal processes. It contains info of resource template and scheduling policy, and is the processing object of karmada-scheduler when scheduling applications.
- Resource Interpreter
In the process of distributing resources from
karmada-apiserver to member clusters, Karmada needs to understand the definition structure of resources. For example, during the divided scheduling of Deployment, Karmada needs to parse the replicas field of Deployment.
The resource interpreter is designed to interpret the resource structure. It includes two types of interpreters. The built-in interpreter is used to interpret common Kubernetes native resources or some well-known extended resources, implemented and maintained by the community, and the custom interpreter is used to interpret custom resources or override built-in interpreters, implemented and maintained by users.
- Resource Model
The resource model is the abstraction of the resource usage of the member cluster on the Karmada control plane. During the scheduling of replicas based on the cluster margin, karmada-scheduler will make decisions based on the resource model of the cluster.
- Resource Template
Resource template refers to the K8s native API definition including CRD, and generally refers to the template of multi-cluster applications.
Spread constraint refers to scheduling constraints based on the cluster topology, e.g. Karmada will schedule according to information such as the region, provider, and zone where the cluster is located.
Object at the federation layer to present a resource in member clusters. The work of different member clusters is isolated by namespace.