5.k8s弹性伸缩
k8s弹性伸缩,需要附加插件heapster监控
弹性伸缩:随着业务访问量的大小,k8s系统中的pod比较弹性,会自动增加或者减少pod数量;
5.1 安装heapster监控
1:上传并导入镜像,打标签
ls *.tar.gz
for n in ls *.tar.gz;do docker load -i $n ;done
docker tag docker.io/kubernetes/heapster_grafana:v2.6.0 192.168.111.11:5000/heapster_grafana:v2.6.0
docker tag docker.io/kubernetes/heapster_influxdb:v0.5 192.168.111.11:5000/heapster_influxdb:v0.5
docker tag docker.io/kubernetes/heapster:canary 192.168.111.11:5000/heapster:canary
注释:
cAdvisor:该功能模块是内嵌入到kubelet里面
heapster:采集监控数据,从cAdvisor中去采集数据
influxdb:存储数据
grafana:出图
查看cadvisor得web界面
查看cadvisor端口为4194
直接访问nodeIP加端口访问即可;
2:上传配置文件,
kubectl create -f .
修改配置vim heapster-controller.yaml
containers:
- name: heapster
image: 192.168.111.11:5000/heapster:canary
imagePullPolicy: IfNotPresent #镜像下载策略,设置为不更新
3:打开dashboard验证,访问192.168.111.11:8080
5.2 弹性伸缩
1:修改rc的配置文件,为了方便首先创建一个命名空间即可namespace,这样便于查看监控;
containers:
- name: ceshi
image: 192.168.111.11:5000/nginx:1.13
ports:
- containerPort: 80
resources:
limits:
cpu: 100m
requests:
cpu: 100m
2:创建弹性伸缩规则
kubectl autoscale -n test replicationcontroller ceshi --max=8 --min=1 --cpu-percent=8
#autoscale:对deployment,replicaSet或replicationController进行水平自动扩容和缩容的设置
3:测试
ab -n 1000000 -c 40 http://172.16.19.9/index.html
扩容截图,可以发现自动扩容了多台pod数
缩容:没有压力了自动收回其他pod