您现在的位置是:首页 > 文章详情

kubernetes的弹性扩缩容HPA部署实施(3)

日期:2020-03-19点击:480

1、HPA是kubernetes里面pod弹性伸缩的实现,它能根据设置的监控阀值进行pod的弹性扩缩容,目前默认HPA只能支持cpu和内存的阀值检测扩缩容。
但hpa不能用于伸缩一些无法进行缩放的控制器如DaemonSet
2、也可以通过custom metric api 调用prometheus实现自定义metric 来更加灵活的监控指标实现弹性伸缩

kubernetes的弹性扩缩容HPA部署实施(3)

这里HPA部署需要Metrics-server服务,没有这个HPA是无法获取pod的资源使用情况,所以部署HPA的时候前提要先部署Metrics-server

早期kubernetes版本是使用hepster,在1.10后面版本更推荐使用metric-server
推荐使用metric-server

重点:

实现hpa的条件:
1\hpa不能autoscale daemonset类型control
2\要实现autoscale,pod必须设置request

开始部署:

我这里吧文件都放到百度网盘了,可以直接使用不用修改,都修改好了,直接启动即可

链接:https://pan.baidu.com/s/1D5yoH6GZO3C0a9PZLK8oUw
提取码:27s1

kubeadm方式
将metric-server从github拉取下来

git clone git@github.com:kubernetes-incubator/metrics-server.git
或者手动下载到本地再上传到主机
https://github.com/kubernetes-incubator/metrics-server

这里使用for循环下载

for file in auth-delegator.yaml auth-reader.yaml metrics-apiservice.yaml metrics-server-deployment.yaml metrics-server-service.yaml resource-reader.yaml ; do wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/metrics-server/$file;done

kubernetes的弹性扩缩容HPA部署实施(3)
一共6个文件

这里需要修改2个文件
修改 vim metrics-server-deployment.yaml

kubernetes的弹性扩缩容HPA部署实施(3)
这些都需要修改
修改 vim resource-reader.yaml

kubernetes的弹性扩缩容HPA部署实施(3)

配置完这些然后开始创建
kubectl apply -f .

创建完成看一下
kubernetes的弹性扩缩容HPA部署实施(3)

kubernetes的弹性扩缩容HPA部署实施(3)
kubernetes的弹性扩缩容HPA部署实施(3)

这说明metrics-server部署完成了
接下来开始部署HPA

创建一个deployment的yaml
[root@k8s-master hpa]# cat autuscalertest.yaml
apiVersion: v1
kind: Service
metadata:
name: autuscalertest
labels:
app: autuscalertest
spec:
type: NodePort
ports:

  • port: 80
    targetPort: 80
    nodePort: 30110
    protocol: TCP
    selector:
    app: autuscalertest

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
    name: autuscalertest
    spec:
    replicas: 2
    template:
    metadata:
    labels:
    app: autuscalertest
    annotations:
    prometheus.io/scrape: 'true'
    spec:
    containers:

    • name: podinfod
      image: nginx
      imagePullPolicy: Never
      ports:
      • containerPort: 80
        protocol: TCP
        resources:
        requests:
        memory: "32Mi"
        cpu: "1m"
        limits:
        memory: "256Mi"
        cpu: "100m"

kubernetes的弹性扩缩容HPA部署实施(3)

必须有这个requests参数
完成之后直接 kubectl create -f autuscalertest.yaml
这里的副本数量是2个哈

完成之后
在创建HPA的yaml
kubernetes的弹性扩缩容HPA部署实施(3)
指定pod的cpu和内存使用到的阀值
以及最小容器个数2个,最大为10个

创建
kubectl create -f HorizontalPodAutoscaler.yaml

kubernetes的弹性扩缩容HPA部署实施(3)
接下来测试一下

webbench进行压力测试

编译安装
wget http://www.ha97.com/code/webbench-1.5.tar.gz
tar zxvf webbench-1.5.tar.gz
cd webbench-1.5
make
make install

kubernetes的弹性扩缩容HPA部署实施(3)

查看一下效果哈
kubernetes的弹性扩缩容HPA部署实施(3)
kubernetes的弹性扩缩容HPA部署实施(3)
kubernetes的弹性扩缩容HPA部署实施(3)

说明咱们的HPA是生效了,,等待压测完事之后,过段时间这10个容器会缩减到2个副本数量这里注意哈,不会立马缩减到2个,需要一段时间的

kubernetes的弹性扩缩容HPA部署实施(3)

好了hpa就部署完成了,后面有什么问题大家可以私信我哈

原文链接:https://blog.51cto.com/xiaorenwutest/2480053
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章