kubernetes的弹性扩缩容HPA部署实施(3)
1、HPA是kubernetes里面pod弹性伸缩的实现,它能根据设置的监控阀值进行pod的弹性扩缩容,目前默认HPA只能支持cpu和内存的阀值检测扩缩容。
但hpa不能用于伸缩一些无法进行缩放的控制器如DaemonSet
2、也可以通过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类型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
一共6个文件
这里需要修改2个文件
修改 vim metrics-server-deployment.yaml
这些都需要修改
修改 vim resource-reader.yaml
配置完这些然后开始创建
kubectl apply -f .
创建完成看一下
这说明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: autuscalertestapiVersion: 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"
- containerPort: 80
- name: podinfod
必须有这个requests参数
完成之后直接 kubectl create -f autuscalertest.yaml
这里的副本数量是2个哈
完成之后
在创建HPA的yaml
指定pod的cpu和内存使用到的阀值
以及最小容器个数2个,最大为10个
创建
kubectl create -f HorizontalPodAutoscaler.yaml
接下来测试一下
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
查看一下效果哈
说明咱们的HPA是生效了,,等待压测完事之后,过段时间这10个容器会缩减到2个副本数量这里注意哈,不会立马缩减到2个,需要一段时间的
好了hpa就部署完成了,后面有什么问题大家可以私信我哈
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
冠状病毒后,服务器的路在何方?
回望历史每一次经济危机的到来,都会带来新的生机。科技领域也不例外,1987年股市崩盘,崩盘最终导致了1980年代末和1990年代初的经济衰退,直到互联网泡沫破灭,才真正得到解决。繁荣的到来,给科技领域以及 “电子商务”等行业注入了很多希望和现金。 如今由于新型冠状病毒的发展,有专家认为可能会带来新一轮的经济危机,服务器行业是个否会受到影响?在考虑这个问题时,我们认为大萧条是许多行业的转折点。因此可以通过对比大萧条时期和现在服务器的状况来推测未来服务器的方向。 服务器市场:今昔对比 根据市场研究机构IDC的数据,上一次经济衰退距今已有十二年,2019年第四季度,服务器出货量增长了14%,达到340万台,收入增长了7.5%,达到253.5亿美元。 收入增长的主要原因是,超大规模专业服务提供商和云服务提供商在基础设施方面进行了大量投资,向这些公司提供设备的ODM出售了105万台机器,增长速度惊人,达到了53%,推动收入增长了37.9%, 达到64.7亿美元。 显然,随着超大规模专业服务提供商和云服务提供商大量购买X86服务器,以及英特尔与AMD之间的竞争日益激烈,超大规模专业服务提供商在处理...
- 下一篇
通过maxwell读取binlog日志,把mysql变化数据传入redis
Maxwell简介 Maxwell是一个能实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis、RabbitMQ、Redis、Google Cloud Pub/Sub、文件或其它平台的应用程序。它的常见应用场景有ETL、维护缓存、收集表级别的dml指标、增量到搜索引擎、数据分区迁移、切库binlog回滚方案等。Maxwell给出了一些无需重新构建整个平台的事件来源的好处。大家可以通过官网下载合适的版本进行使用。Maxwell主要提供了下列功能: 支持 SELECT * FROM table 的方式进行全量数据初始化 支持在主库发生failover后,自动恢复binlog位置(GTID)。 可以对数据进行分区,解决数据倾斜问题,发送到kafka的数据支持database、table、column等级别的数据分区。 工作方式是伪装为Slave,接收binlog events,然后根据schemas信息拼装,可以接受ddl、xid、row等各种event。 MaxWell安装 Maxwell安装相对比较简单,本次主要是修改max...
相关文章
文章评论
共有0条评论来说两句吧...