Federation Concepts
Kubernetes federation enables managing multiple clusters as a single logical unit. It addresses challenges like geographic distribution, high availability across regions, and workload isolation.
Why Federation
Single-cluster deployments hit limits in production scenarios:
- Geographic latency: Users in different regions need nearby clusters.
- Blast radius: A control plane failure should not take down everything.
- Compliance: Data residency laws may require regional clusters.
- Scale: Very large workloads may exceed single-cluster capacity.
KubeFed (Kubernetes Federation v2)
KubeFed propagates resources across member clusters from a host cluster:
# Install KubeFed control plane
helm install kubefed kubefed-charts/kubefed \
--namespace kube-federation-system --create-namespace
# Join a member cluster
kubefedctl join member-cluster-1 \
--host-cluster-context=host \
--cluster-context=member-1
# Check federation status
kubectl get kubefedclusters -n kube-federation-system
# List joined clusters
kubectl get kubefedclusters -n kube-federation-system \
-o custom-columns=NAME:.metadata.name,READY:.status.conditions[0].status
Federated Resources
KubeFed uses federated type wrappers to distribute resources:
apiVersion: types.kubefed.io/v1beta1
kind: FederatedDeployment
metadata:
name: myapp
namespace: production
spec:
template:
spec:
replicas: 3
selector:
matchLabels:
app: myapp
placement:
clusters:
- name: us-east
- name: eu-west
overrides:
- clusterName: eu-west
clusterOverrides:
- path: "/spec/replicas"
value: 5
Challenges
Federation introduces complexity: conflict resolution across clusters, network connectivity between regions, consistent secret distribution, and cross-cluster service discovery all require careful planning. Many organizations opt for simpler multi-cluster patterns using GitOps instead of full federation.