Metrics Server 资源采集
Metrics Server:核心监控数据的采集器 ,监控的是kubelet 链接的资源,最多链接 5000个node资源,需要0.5颗CPU 和4M内存才能运行Metrics Server
- 查看资源,提示没有安装Metrics Server
- 安装 Metrics Server
https://github.com/kubernetes-sigs/metrics-server/releases?page=2
docker pull willdockerhub/metrics-server:v0.4.4 # 手动拉取镜像
docker tag willdockerhub/metrics-server:v0.4.4 k8s.gcr.io/metrics-server/metrics-server:v0.4.4 # 更改镜像名字
对yaml文件进行修改
kubectl apply -f components.yaml # 部署一下
测试HPA自动伸缩
搞一个动态网页
cat > index.php << EOF
<?php
$x = 0.0001;
for ($i = 0; $i <= 10000000; $i++){
$x += sqrt($x);
}
echo "OK!";
?>
写一个Dockerfile
cat > Dockerfile << EOF
FROM php:5-apache
COPY index.php /var/www/html/index.php
RUN chmod a+x index.php
EOF
构建一下
docker build -t hpa-test ./
部署这个php网站
cat php.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: php-apache
spec:
selector:
matchLabels:
run: php-apache
replicas: 1 # 默认成一个副本,后面自动伸展
template:
metadata:
labels:
run: php-apache
spec:
containers:
- name: php-apache
image: hpa-test:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
resources: # 两个资源 limits 和 requests, limits是硬限制,最大不能超过这个.requests是最小
limits:
cpu: 500m #0.5cpu
requests:
cpu: 200m
---
apiVersion: v1
kind: Service
metadata:
name: php-apache
labels:
run: php-apache
spec:
ports:
- port: 80
selector:
run: php-apache
开启HPA弹性扩缩容
kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
autoscale 自动伸缩 当cpu大于百分之50的时候,最小容器有1个,最大有10个
创建一个busybox 一直访问php网站
kubectl run -i --tty load-generator --rm --image=busybox --restart=Never -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://php-apache; done"