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

网友投稿 272 2022-10-29

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

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

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

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

重点:

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

开始部署:

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

链接:提取码:27s1

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

git clone git@github.com:kubernetes-incubator/metrics-server.git或者手动下载到本地再上传到主机file in auth-delegator.yaml auth-reader.yaml metrics-apiservice.yaml metrics-server-deployment.yaml metrics-server-service.yaml resource-reader.yaml ; do wget vim metrics-server-deployment.yaml

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

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

创建一个deployment的yaml[root@k8s-master hpa]# cat autuscalertest.yaml apiVersion: v1kind: Servicemetadata:name: autuscalertestlabels:app: autuscalertestspec:type: NodePortports:

port: 80targetPort: 80nodePort: 30110protocol: TCPselector:app: autuscalertest apiVersion: extensions/v1beta1kind: Deploymentmetadata:name: autuscalertestspec:replicas: 2template:metadata:labels:app: autuscalertestannotations:prometheus.io/scrape: 'true'spec:containers: name: podinfodimage: nginximagePullPolicy: Neverports: containerPort: 80protocol: TCPresources:requests:memory: "32Mi"cpu: "1m"limits:memory: "256Mi"cpu: "100m"

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

创建kubectl create -f HorizontalPodAutoscaler.yaml

webbench进行压力测试

编译安装wget zxvf webbench-1.5.tar.gzcd webbench-1.5makemake install

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于HDMI接口上的ESD保护方案ULC0524P
下一篇:Mybatis第三方PageHelper分页插件的使用与原理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~