Middle — Middle+
How is scalability achieved in applications in Kubernetes?
sobes.tech AI
Answer from AI
Application scalability in Kubernetes is achieved through several key mechanisms:
- ReplicaSets: allow running multiple copies of a pod, providing horizontal scaling.
- Horizontal Pod Autoscaler (HPA): automatically increases or decreases the number of pods based on metrics (CPU, memory, custom metrics).
- Cluster Autoscaler: automatically adds or removes nodes in the cluster depending on the load.
- Load Balancing: Kubernetes services distribute traffic among pods, ensuring even load.
Example manifest for HPA scaling a Deployment based on CPU:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: example-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: example-deployment
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
Thus, Kubernetes provides flexible and automatic application scaling depending on current load.