Kubernetes

您所在的位置:网站首页 k8s扩缩容 Kubernetes

Kubernetes

2023-09-04 12:21| 来源: 网络整理| 查看: 265

一. 前言

我们可以通过–replicas的方式来扩缩容,或者是通过dashboard的方式界面化的扩缩容。其实都需要手动,如果kubernetes可以通过当时容器使用情况来自动的扩缩容,其实有的可以进行预知,有的根本就是不确定的,纯手工去做也是不现实的人海战术。 Horizontal Pod Autoscaling,简称HPA, Kubernetes通过HPA的设定,实现了容器的弹性伸缩功能。对于Kubernetes中的POD集群来说,HPA可以实现很多自动化功能,比如当POD中业务负载上升的时候,可以创建新的POD来保证业务系统稳定运行,当POD中业务负载下降的时候,可以销毁POD来减少资源的浪费。当前的弹性伸缩的指标包括:CPU,内存,并发数,包传输大小。HPA控制器默认每隔30秒就会运行一次,一旦创建的HPA,我们就可以通过命令查看获取到的当前指标信息。

二. 原理

metrics-server 通过 kube-apiserver 发现所有节点,然后调用 kubelet APIs(通过 https 接口)获得各节点(Node)和 Pod 的 CPU、Memory 等资源使用情况。因为k8s的api-server将所有的数据持久化到了etcd中,显然k8s本身不能处理这种频率的采集,而且这种监控数据变化快且都是临时数据,因此需要有一个组件单独处理他们,k8s版本只存放部分在内存中,于是metric-server的概念诞生了。

三. Metrics-Server部署 1. 查看官网指导说明

在这里插入图片描述

2. 下载components.yaml文件 wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml 3. 修改配置文件components.yaml

在这里插入图片描述

4. 执行 kubectl apply components.yaml

在这里插入图片描述

5. 查看 kubectl top node

在这里插入图片描述

kubectl top pods -n kube-system

在这里插入图片描述

kubectl cluster-info

在这里插入图片描述

四. 自动扩容 1. 在docker-project的代码中增加测试用例,重新打包镜像,上传到伺服

在这里插入图片描述

2. 修改docker-project.yaml配置文件,增加资源限制

在这里插入图片描述

3. 运行 kubectl apply -f docker-project.yaml

在这里插入图片描述

4. 创建自动扩容的hpa kubectl autoscale deployment docker-project --min=1 --max=3

在这里插入图片描述

5. 查看hpa kubectl get hpa

在这里插入图片描述

6. cpu测试

通过shell脚本调用:http://192.168.214.128:31000/api/testCpu

#!/bin/bash int=1 while(( $int


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3