A.1. Glossary
Multi-Cluster Terms
Control Plane
The central system that manages the multi-cluster environment. MCM uses a Karmada-based control plane to manage several member clusters together.
What it does:
- Registers and manages the member clusters
- Carries out the resource propagation policies
- Multi-cluster scheduling
- Monitors cluster status
Member Cluster
An individual Kubernetes cluster registered with and managed by the control plane. This is where the workloads actually run.
What it is like:
- An agent is installed for the control plane
- It works as an independent Kubernetes cluster
- It can be spread across several cloud and on-premises environments
Host Cluster
The cluster the control plane is installed and runs on. It is the centre of multi-cluster management.
Push Mode / Pull Mode
How the member cluster and the control plane talk to each other.
| Mode | Description | Where it is used |
|---|---|---|
| Push Mode | The control plane pushes resources to the member cluster directly | Where the network is reachable |
| Pull Mode | The member cluster's agent pulls resources from the control plane | Clusters behind a firewall |
Policy Terms
PropagationPolicy
The resource that defines the rules for deploying a Kubernetes resource to several member clusters.
The main settings:
- Choosing the target resources (the resource selector)
- Choosing the target clusters (cluster affinity)
- The replica scheduling strategy
Scope:
PropagationPolicy: namespace-scopedClusterPropagationPolicy: cluster-scoped
OverridePolicy
The resource that defines the rules for changing a resource's attributes per cluster as it is propagated to the member clusters.
Overrider types:
| Type | Description |
|---|---|
imageOverrider | Changes the container image |
commandOverrider | Changes the container command |
argsOverrider | Changes the container arguments |
labelsOverrider | Adds, changes, and removes labels |
annotationsOverrider | Adds, changes, and removes annotations |
plaintextOverrider | Changes any field through a JSON patch |
fieldOverrider | Changes a particular field value |
Scope:
OverridePolicy: namespace-scopedClusterOverridePolicy: cluster-scoped
Resource Selector
The condition that picks the resources a policy applies to.
What it can match on:
- API version (
apps/v1, for example) - Kind (
Deployment, for example) - Name (the resource name)
- Namespace
- Label selector (selection by label)
Cluster Affinity
The condition that picks the clusters a resource is deployed to.
Ways to choose:
clusterNames: naming the clusters directlylabelSelector: choosing by cluster labelfieldSelector: choosing by cluster fieldexclude: naming the clusters to leave out
Binding and Scheduling Terms
ResourceBinding
The intermediate resource created when a propagation policy applies. It holds the binding between a resource and its target clusters.
Status:
| Status | Description |
|---|---|
Scheduled | Scheduling is complete |
FullyApplied | Applied to every cluster |
Applied | Applied to some clusters |
Scope:
ResourceBinding: for namespaced resourcesClusterResourceBinding: for cluster-scoped resources
Work
The resource that holds the manifest actually propagated to a member cluster. A separate Work object is created for each member cluster.
Replica Scheduling
How workload replicas are spread across several clusters.
| Type | Description |
|---|---|
Duplicated | Deploys the same replica count to each cluster |
Divided | Splits the replicas between the clusters |
How they are split:
Weighted: split by weightAggregated: split automatically on the clusters' resources
Basic Kubernetes Terms
Namespace
A virtual cluster that separates resources logically within a Kubernetes cluster. It can isolate resources per team, project, or environment.
Deployment
The workload resource that manages declarative updates to an application. It manages ReplicaSets and provides rolling updates and rollback.
StatefulSet
The workload resource that manages a stateful application. It provides a unique network identity and persistent storage.
DaemonSet
The workload resource that runs a copy of a pod on every node (or on some of them). It is used for log collection, monitoring agents, and the like.
Job
The workload resource that runs one-off work. The pod ends once the work completes.
CronJob
The resource that creates a Job periodically to run repeating work. It uses a Unix cron format schedule.
Pod
The smallest deployable unit Kubernetes can create and manage. It holds one or more containers.
ReplicaSet
The resource that maintains a given number of pod replicas. It is normally managed indirectly through a Deployment.
Service
The abstraction that defines a network service for a set of pods. It provides load balancing and service discovery.
Service types:
| Type | Description |
|---|---|
ClusterIP | An in-cluster IP (the default) |
NodePort | Exposed outward on a node port |
LoadBalancer | Uses an external load balancer |
ExternalName | Maps to an external DNS name |
Ingress
The resource that manages HTTP/HTTPS routing from outside the cluster to services inside it.
ConfigMap
The resource that stores non-secret configuration data as key-value pairs. A pod can use it as environment variables, command-line arguments, or a configuration file.
Secret
The resource that stores sensitive information such as passwords, tokens, and keys. It is stored Base64-encoded.
PersistentVolumeClaim (PVC)
The resource by which a user requests storage. It binds to a PersistentVolume, dynamically or statically.
HorizontalPodAutoscaler (HPA)
The resource that adjusts a workload's replica count automatically on CPU, memory, or a custom metric.
Label
Key-value metadata attached to a resource. It is used to select and group resources.
Annotation
Non-identifying metadata attached to a resource. It holds information used by tools, libraries, and clients.
MCM Console UI Terms
Topology
The graph view that shows the relationships between clusters, namespaces, and workloads visually. It lets you take in how resources connect and how they have propagated at a glance.
Drawer
The side panel that shows a resource's detail. In overlay mode it lets you see the list and the detail at the same time.
Badge
A small label showing a resource's type or state.
| Badge | Meaning |
|---|---|
PP | PropagationPolicy |
CPP | ClusterPropagationPolicy |
OP | OverridePolicy |
COP | ClusterOverridePolicy |
D | Deployment |
SS | StatefulSet |
DS | DaemonSet |
Scope
The extent over which a policy or resource applies.
| Scope | Description |
|---|---|
| Namespace-scoped | Valid only within a particular namespace |
| Cluster-scoped | Valid across the whole cluster |
Status Terms
Ready
The state in which a cluster or resource is working normally and can handle requests.
Healthy / Unhealthy
Shows the health of a cluster or resource.
| Status | Description |
|---|---|
| Healthy | Working normally |
| Unhealthy | A problem has arisen; attention is needed |
Propagation Status
Shows how far a resource has propagated to the member clusters.
| Status | Description |
|---|---|
| Propagating | The resource is being propagated to the target clusters |
| Completed | Propagated to every cluster |
| Failed | The propagation failed |
| Suspended | The propagation is suspended |
Conditions
The list of conditions showing a resource's current state. Each condition carries a type, a state (True/False/Unknown), a reason, and a message.
Abbreviations
| Abbreviation | Full name | Description |
|---|---|---|
| MCM | Multi-Cluster Management | Managing several clusters |
| K8s | Kubernetes | The container orchestration platform |
| API | Application Programming Interface | The programming interface of an application |
| YAML | YAML Ain't Markup Language | A data serialisation language |
| JSON | JavaScript Object Notation | A data interchange format |
| RBAC | Role-Based Access Control | Access control based on roles |
| CRD | Custom Resource Definition | The definition of a custom resource |
| CR | Custom Resource | A custom resource |
| PV | PersistentVolume | A persistent volume |
| PVC | PersistentVolumeClaim | A persistent volume claim |
| HPA | HorizontalPodAutoscaler | The horizontal pod autoscaler |
| DNS | Domain Name System | The domain name system |
| TLS | Transport Layer Security | Transport layer security |
| SSL | Secure Sockets Layer | The secure sockets layer |