k8s弹性伸缩与heapster监控

7. k8s弹性伸缩

k8s弹性伸缩,需要附加插件heapster监控

  • 使用heapster监控
    • heapster通过apiserver查询节点信息
    • heapster向node节点cadvisor获取监控数据
    • heapster将数据写入influxdb数据库中
    • grafana冲数据库中取出数据进行出图
    • dashboard调用grafana的图进行展示

7.1 安装heapster监控

7.1.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 10.0.0.11:5000/heapster_grafana:v2.6.0
docker tag  docker.io/kubernetes/heapster_influxdb:v0.5 10.0.0.11:5000/heapster_influxdb:v0.5
docker tag docker.io/kubernetes/heapster:canary 10.0.0.11:5000/heapster:canary
7.1.2 master节点上传heapster配置文件
修改配置文件:
#heapster-controller.yaml
    spec:
      nodeName: 10.0.0.13
      containers:
      - name: heapster
        image: 10.0.0.11:5000/heapster:canary
        imagePullPolicy: IfNotPresent
        
#influxdb-grafana-controller.yaml
    spec:
      nodeName: 10.0.0.13
      containers:

全部创建
kubectl create -f .

[root@k8s-master monitor]# kubectl get pod -n kube-system 
NAME                                           READY     STATUS    RESTARTS   AGE
heapster-mnd99                                 1/1       Running   0          17s
influxdb-grafana-p2vhh                         2/2       Running   0          17s
kube-dns-32943122-3jv34                        4/4       Running   4          5h
kubernetes-dashboard-latest-3467346521-jlx3v   1/1       Running   1          3h
7.1.3 打开dashboard验证是否监控

[root@k8s-master monitor]# systemctl restart kube-apiserver.service
在这里插入图片描述

7.2 弹性伸缩

7.2.1 修改rc的配置文件
[root@k8s-master deployment]# cat k8s_deploy.yml 
apiVersion: extensions/v1beta1          #扩展版的
kind: Deployment                #资源类型
metadata:                               #资源属性
  name: nginx-deployment        #资源的名称
spec:
  replicas: 3                   #副本数
  minReadySeconds: 60   #滚动升级间隔
  template:
    metadata:           #模板
      labels:
        app: nginx              #容器的标签
    spec:
      containers:
      - name: nginx             #容器的名称
        image: 10.0.0.11:5000/nginx:1.13        #容器所使用的镜像
        ports:
        - containerPort: 80             #容器对外开放的端口
        resources:                      #资源限制
          limits:                       #最大
            cpu: 100m           #cpu时间片
          requests:                     #最小
            cpu: 100m

创建deployment资源        
kubectl create  -f k8s_deploy.yaml

创建service资源	
kubectl expose deployment nginx-deployment --port=80 --target-port=80 --type=NodePort

--port:指定service端口
--target-port:指定容器端口
--type:指定的服务类型,默认clusterip
7.2.2 创建弹性伸缩规则
创建hpa资源	
[root@k8s-master deployment]# kubectl autoscale deployment nginx-deployment --max=10 --min=1 --cpu-percent=5
deployment "nginx-deployment" autoscaled

--max:最多扩容到多少台
--min:最少缩容到多少台
--cpu-percent:cpu使用率达到百分之十进行扩容

在这里插入图片描述

7.2.3 压力测试
[root@k8s-master deployment]# yum install httpd-tools.x86_64 

[root@k8s-node-2 ~]# ab -n 1000000 -c 20 http://10.0.0.12:16410/index.html

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.2.4 导出hpa配置

kubectl get horizontalpodautoscaler --output=yaml
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寻花之梦~~

谢谢老板的支持和鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值