步骤:
1. 创建一个 Deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
name: hpa-demo
spec:
replicas: 2
selector:
matchLabels:
app: hpa-demo
template:
metadata:
labels:
app: hpa-demo
spec:
containers:
- name: demo-container
image: nginx
resources:
limits:
cpu: "500m"
requests:
cpu: "200m"
在这个示例中,我们创建了一个名为 hpa-demo 的 Deployment,该 Deployment 包含两个 Pod,每个 Pod 包含一个 nginx 容器,并为容器设置了 CPU 资源的请求和限制。
kubectl apply -f your-deployment-file.yaml
2. 创建 HorizontalPodAutoscaler(HPA):
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: hpa-demo-autoscaler
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: hpa-demo
minReplicas: 2
maxReplicas: 5
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
在这个示例中,我们创建了一个 HPA 资源,该资源的目标是名为 hpa-demo 的 Deployment。当 CPU 使用率达到 50% 时,HPA 将尝试自动扩缩,保持 Pod 数量在 2 到 5 之间。
kubectl apply -f your-hpa-file.yaml
3. 监视 HPA 的状态:
kubectl get hpa
使用该命令可以查看 HPA 的状态,包括当前副本数、目标副本数以及触发自动扩缩的指标。
4. 模拟负载:
使用工具或脚本模拟负载,使得 Pod 的 CPU 使用率达到设定的阈值(在这个例子中是 50%)。你可以使用 kubectl exec 进入某个 Pod,并执行一些计算密集型任务或者使用工具进行模拟。
5. 观察 Pod 的自动扩缩:
观察 HPA 的状态,你将看到 Pod 的副本数量根据设定的指标进行自动扩缩。
kubectl get hpa
kubectl get pods
请注意,以上步骤是一个基本的演练,实际情况中可能需要根据应用的性能特点、自动扩缩的需求等进行更详细的配置。演练过程中,你还可以尝试不同的 CPU 使用率阈值、不同的扩缩速度等参数,以更好地理解 HPA 的行为。
转载请注明出处:http://www.zyzy.cn/article/detail/9921/Kubernetes