当前位置: 首页 > news >正文

建网站费用 优帮云菏泽最好的网站建设公司

建网站费用 优帮云,菏泽最好的网站建设公司,免费服务器使用推荐,制作游戏编辑器app文章目录1、前置准备2、需求场景3、Scale 静态扩缩容3.1、创建 Deployment 脚本3.2、Scale 扩缩容3、HPA 自动扩缩容3.1、安装 Metrics3.2、创建 Deployment 演示案例3.3、创建 HPA3.4、触发 HPA 自动扩缩容1、前置准备 本次案例演示,我选择了阿里云ECS&#xff08…

文章目录

  • 1、前置准备
  • 2、需求场景
  • 3、Scale 静态扩缩容
    • 3.1、创建 Deployment 脚本
    • 3.2、Scale 扩缩容
  • 3、HPA 自动扩缩容
    • 3.1、安装 Metrics
    • 3.2、创建 Deployment 演示案例
    • 3.3、创建 HPA
    • 3.4、触发 HPA 自动扩缩容

1、前置准备

本次案例演示,我选择了阿里云ECS(抢占式)搭建了 K8S 1主2从集群,资源配置规格如下:

  • 主节点 k8s-master:4核8G、40GB硬盘、CentOS7.9(内网IP:172.16.0.172)
  • 从节点 k8s-node1: 4核8G、40GB硬盘、CentOS7.9(内网IP:172.16.0.173)
  • 从节点 k8s-node2: 4核8G、40GB硬盘、CentOS7.9(内网IP:172.16.0.174)

K8S集群构建参考:https://blog.csdn.net/weixin_46594796/article/details/139649056

2、需求场景

在企业级生产环境中,经常会遇到某个服务容器性能不足的情况,例如:CPU、内存飚高,这种情况一般会想到对该服务进行横向扩容,创建更多的服务容器来分摊工作量。或者说容器资源过剩,想要把资源节省出来,通常这种情况需要我们去手动的进行扩缩容。动态调整应用实例数量以满足业务需求,同时优化资源利用率。

  • 突发流量:当应用访问量突然激增(如促销活动、热点事件),增加Pod副本数,避免服务过载或崩溃。
  • 低峰时段:在流量低谷时减少Pod数量,节省资源成本。

3、Scale 静态扩缩容

3.1、创建 Deployment 脚本

在K8S环境中,我们一般使用 scale 命令来对 Pod 资源进行手动扩缩容,首先先通过 Deployment 创建3个 Niginx Pod,deploy-nginx.yaml内容如下:

mkdir /etc/k8s
cat > /etc/k8s/deploy-nginx.yaml <<-'EOF'
apiVersion: apps/v1
kind: Deployment
metadata:name: deploy-nginx
spec:selector:matchLabels:app: nginxreplicas: 3template:metadata:labels:app: nginxspec:containers:- name: container-nginximage: nginx:1.20.2-alpineports:- containerPort: 80
EOF

执行 delopment 文件:

kubectl apply -f /etc/k8s/deploy-nginx.yaml

此时可以看到,3个Pod容器已经成功部署完成了:
在这里插入图片描述

3.2、Scale 扩缩容

上面脚本执行完毕后,已经自动创建3个Pod了,想要把3个Pod扩容为5个,就需要使用 scale 命令手动执行:

kubectl scale deploy deploy-nginx --replicas=5

就可以看到,直接将容器数量扩容为5个了:
在这里插入图片描述
缩容只需要把数字调小即可,这里就不演示了。

但是这样终归是需要运维人员手动的进行调整,有些特殊场景流量高峰期可能很随机,这样在通过人工进行处理就不太合适了,有没有可以根据资源使用情况自动扩缩容Pod的方案,官方提供了就是 HPA

3、HPA 自动扩缩容

3.1、安装 Metrics

首先,通过命令查看哪些 Pod 占用资源比较高:kubectl top pods,执行完毕后可以发现,错误日志:error: Metrics API not available,说明没有安装Metrics
在这里插入图片描述
首先在主节点上下载配置文件:

wget https://xuzhibin-bucket.oss-cn-beijing.aliyuncs.com/k8s/metric-server.yaml

这个配置文件中已经被修改过,相比于官方的配置文件有两处修改:

  1. 处理加密证书不匹配问题(生产环境需要配置好证书的)
  2. Metrics镜像改成了使用阿里云,否则无法下载
    在这里插入图片描述

这个时候,就可以直接部署 Metrics:

kubectl apply -f metric-server.yaml

最后通过该命令查看,部署是否完毕:

kubectl get po -n kube-system | grep metrics-server

3.2、创建 Deployment 演示案例

演示案例 deployment 脚本(svc-hpa.yaml),这是由Apache提供的,配置如下:

mkdir -p /etc/sca/hpa
cd /etc/sca/hpa
cat > svc-hpa.yaml <<-'EOF'
apiVersion: apps/v1
kind: Deployment
metadata:name: php-apache
spec:selector:matchLabels:run: php-apachetemplate:metadata:labels:run: php-apachespec:containers:- name: php-apacheimage: deis/hpa-exampleports:- containerPort: 80resources:limits:cpu: 500mrequests:cpu: 200m
---
apiVersion: v1
kind: Service
metadata:name: php-apachelabels:run: php-apache
spec:ports:- port: 80selector:run: php-apache
EOF

启动演示案例容器,就会创建一个Pod:

kubectl apply -f svc-hpa.yaml

这里面主要注意的是,有个资源限定的配置:表示对pod容器资源的限定,启动最少占用0.2核CPU,最大占用0.5核CPU:
在这里插入图片描述

3.3、创建 HPA

创建HPA需要使用 autoscale 命令,这里--cpu-percent=50说明是50%,结合上面最大占用500m(0.5核)CPU,所以如果当前Pod占用了0.25核CPU,就会对Pod容器进行扩容,最多可以达到10个,但不会少于1个。

kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10

在这里插入图片描述
⚠️ 如果不再使用HPA,可以用下述命令进行删除:

kubectl delete hpa php-apache

3.4、触发 HPA 自动扩缩容

先新开一个窗口,通过下述命令监听一下HPA状态:

kubectl get hpa php-apache --watch

此时没有请求量,还是比较平静的:
在这里插入图片描述
在新开一个窗口,通过 Linux 系统提供的工具BusyBox,每过0.1s发送请求,模拟大流量场景让HPA触发扩容,通过下述命令:

kubectl run -i --tty load-generator --rm --image=busybox:1.28 --restart=Never -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://php-apache; done"

过了一段时间,可以看到窗口展示大量接口调用:
在这里插入图片描述
这个时候再去看监控窗口,发现确实开始自动扩容了:只要过了50%,Pod副本数量就开始不断新增,随着Pod增多,CPU占用也逐渐下降了,发现8个Pod就能控制在50%以下,就不会继续扩容了。
在这里插入图片描述

此时已经扩容到8个容器了:
在这里插入图片描述
这个时候把调用脚本停掉,再看监控日志会发现,Pod自动被逐渐销毁,但是并不是马上进行缩容,CPU使用率降下来后,他会先等待一会儿,然后才开始销毁Pod容器,原因是担心只是短暂流量跌下来,会给一点缓冲时间,重复创建销毁容器的代价太高了!
在这里插入图片描述

http://www.dtcms.com/a/444536.html

相关文章:

  • 胶州建网站wordpress您访问的网页出错
  • 对比色网站设计成品网站管理系统 源码
  • 3. Ubuntu 14.04更换阿里云源,设置系统字体
  • 案例学网页设计和网站建设波密网站建设
  • 网站建设项目经验糕点网站策划书
  • 专门做验收报告的网站网站根目录 设置
  • 专门用来查找网址的网站app产品开发流程
  • 张店网站设计wordpress 重新设置密码
  • 网站建设招标文件技术部分网站开发公司会计科目
  • 微信公众号免费模板素材网站个人网站备案填写要求
  • 西安cms建站网站设计公司南京
  • 响应式手机网站怎么做自己建网站的费用
  • 海关 瑞数后缀 分析
  • 郑州中色十二冶金建设有限公司网站关键词点击工具
  • 山西省建设银行网站网站建设合作
  • 网站建设的视频哪个网站有做形象墙
  • 统计网站怎么做天津模板网页制作报价
  • 黑龙江两学一做网站代运营竞价公司
  • 沈阳网站建设的价格网站后台功能开发
  • 生态网站模板简单网页设计模板图
  • 有做财经 直播的网站吗彩页设计培训
  • discuz网站论坛间帖子转移装修公司网页设计模板
  • 网站news怎么做做外贸门户网站
  • 彩票网站开发制作平台软件丰台怎样做网站
  • 郑州市惠济区城乡建设局网站企业网站推广过程
  • 公司网站建设价格低成都定制app开发公司
  • 昆明网络推广公司适合seo的建站系统
  • 网站404设置牡丹江信息网
  • 天津做个网站需要多少钱wordpress推送
  • Java反序列化 CC1链分析