Karmada — Multi-Cloud & Multi-Cluster Kubernetes Orchestration
CNCF-incubated control plane that turns a fleet of Kubernetes clusters into a single addressable API surface.
Instalación lista para agent
Este activo puede instalarse después de elegir el runtime, revisar el plan y ejecutar el comando correspondiente.
npx -y tokrepo@latest install 5639db47-3919-11f1-9bc6-00163e2b0d79 --target codexEjecutar después de confirmar el plan con dry-run.
What it is
Karmada (Kubernetes Armada) is a CNCF-incubated project that provides a control plane for managing workloads across multiple Kubernetes clusters. It extends the Kubernetes API so you can deploy and manage applications across clouds using familiar kubectl commands.
Karmada targets platform teams running Kubernetes in multiple clouds or regions who need a unified control plane for workload distribution, failover, and resource scheduling.
How it saves time or tokens
Without Karmada, managing workloads across multiple clusters requires per-cluster kubectl contexts, separate deployments, and manual failover scripts. Karmada provides a single API surface with PropagationPolicy resources that declaratively distribute workloads based on cluster labels, weights, and availability.
How to use
- Install the kubectl-karmada plugin and initialize:
kubectl krew install karmada
kubectl karmada init
- Join member clusters:
kubectl karmada join member1 --cluster-kubeconfig=member1.kubeconfig
- Create a PropagationPolicy to distribute workloads:
apiVersion: policy.karmada.io/v1alpha1
kind: PropagationPolicy
metadata:
name: distribute-web
spec:
resourceSelectors:
- apiVersion: apps/v1
kind: Deployment
name: web
placement:
clusterAffinity:
clusterNames:
- member1
- member2
replicaScheduling:
replicaSchedulingType: Divided
Example
# Deploy to multiple clusters with one command
kubectl apply -f deployment.yaml --kubeconfig ~/.kube/karmada-apiserver.config
kubectl apply -f propagation-policy.yaml --kubeconfig ~/.kube/karmada-apiserver.config
# Check workload distribution
kubectl get rb -o wide --kubeconfig ~/.kube/karmada-apiserver.config
Related on TokRepo
- DevOps Tools -- Kubernetes and cloud infrastructure tools
- Self-Hosted Tools -- Self-hosted orchestration platforms
Common pitfalls
- Karmada requires a dedicated control plane cluster. This cluster runs the Karmada API server and does not run application workloads.
- Network connectivity between the control plane and member clusters is required. Firewalls must allow the Karmada control plane to reach member cluster API servers.
- PropagationPolicy changes trigger rebalancing. Avoid frequent policy updates that could cause unnecessary workload migrations.
Preguntas frecuentes
Karmada extends the Kubernetes API with multi-cluster resources like PropagationPolicy and OverridePolicy. It uses the Kubernetes API server as its control plane and manages standard Kubernetes resources across member clusters.
Yes. Karmada provides automatic failover. If a member cluster becomes unavailable, workloads are rescheduled to healthy clusters based on the placement configuration in the PropagationPolicy.
Yes. Karmada is cloud-agnostic. You can join clusters from AWS, GCP, Azure, on-premises, or any combination. The control plane communicates with member clusters via standard Kubernetes APIs.
Yes. Karmada is a CNCF incubating project and is used in production by multiple organizations. It was originally developed by Huawei and has active community contributors.
Kubefed is deprecated. Karmada is its spiritual successor with a more mature API, better scheduling algorithms, and active CNCF community support. Karmada provides PropagationPolicy for declarative multi-cluster management.
Referencias (3)
- Karmada GitHub— Karmada is a CNCF-incubated multi-cluster Kubernetes management system
- Karmada Documentation— Karmada documentation and user guides
- CNCF— CNCF project lifecycle and incubating criteria
Relacionados en TokRepo
Discusión
Activos relacionados
KubeSphere — Multi-Cluster Kubernetes Platform
KubeSphere is an open-source container platform that adds multi-tenancy, DevOps pipelines, service mesh, observability, and an app store on top of any standard Kubernetes cluster.
mirrord — Run Local Code in Kubernetes Cloud Conditions
mirrord connects your locally running process to a remote Kubernetes cluster, mirroring or stealing traffic from a target pod so you can develop and debug against real cloud conditions without deploying.
Spinnaker — Multi-Cloud Continuous Delivery at Scale
Spinnaker is an open-source multi-cloud continuous delivery platform originally built at Netflix, orchestrating safe, high-velocity production deploys across AWS, GCP, Azure, and Kubernetes.
Rainbond — Cloud-Native Application Platform Without Kubernetes Expertise
Rainbond is an open-source cloud-native application management platform that abstracts away Kubernetes complexity, letting developers deploy, manage, and orchestrate containerized applications through a visual interface without writing YAML.