Kubernetes 1.20.5实验记录–资源监控及HPA控制器
1.1 Metrics-Server
参照《部署Kubernetes重要组件》
1.2 Promrtheus
参照《部署Kubernetes重要组件》
1.3 HPA控制器
1、安装Metrics-Server
参照《部署Kubernetes重要组件》
2、创建Deployment:
文件deploy-hpa.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-hpa
spec:
replicas: 2
selector:
matchLabels:
run: deploy-hpa
template:
metadata:
labels:
run: deploy-hpa
spec:
containers:
- image: nginx
name: deploy-hpa
resources:
limits:
cpu: 50m
kubectl apply -f deploy-hpa.yaml
3、查看Pod状态:
kubectl get pod -o wide
4、创建Service:
文件service-hpa.yaml
apiVersion: v1
kind: Service
metadata:
name: service-hpa
spec:
ports:
- name: 8080-80
port: 8080
protocol: TCP
targetPort: 80
selector:
run: deploy-hpa
type: ClusterIP
kubectl apply -f service-hpa.yaml
5、查看Service:
kubectl get service
6、创建HPA:
文件hpa.yaml
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: deploy-hpa
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 50
kubectl apply -f hpa.yaml
7、查看HPA状态:
kubectl get hpa
8、开启压力测试:
while true; do wget -q -O- http://10.107.12.119:8080 > /dev/null; echo "It is for HPA."; done
9、查看Pod状态:
kubectl top pod
kubectl get pod -o wide
由于负载变高,副本数增加为5
10、查看HPA状态:
kubectl get hpa
11、查看HPA详细信息:
kubectl describe hpa hpa
12、关闭压力测试
13、查看Pod状态:
kubectl top pod
kubectl get pod -o wide
由于负载变低,副本数减少为2
14、查看HPA状态:
kubectl get hpa
15、查看HPA详细信息:
kubectl describe hpa hpa
16、删除HPA:
kubectl delete -f hpa.yaml
17、删除Service:
kubectl delete -f service-hpa.yaml
18、删除Deployment:
kubectl delete -f deploy-hpa.yaml