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

k8sday09

解决昨天问题

1、重建集群

首先按照昨天所说删除已有集群,重建集群

  # 删除当前已有的集群# 这个my-multi-node-cluster1是我的集群的名字kind delete cluster --name my-multi-node-cluster1​# 如果不知道自己集群叫什么,可以使用:kind get clusters​# 转换到你新yaml文件的路径下(当然也可以不转,只不过下面的文件名用绝对路径即可)cd <你的路径>​# 利用新的yaml文件,重建集群kind create cluster --config kind-cluster1.yaml --name my-multi-node-cluster1

成功后和我们第一次创建集群提示相同(可见k8sday03),如图:

2、HPA重新测压

由于昨天详细配置(除测压外)已全部演示(可见k8sday08),中间的什么创建有资源限制的Deployment,配置HPA均不再过多赘述,不过为了方便加深流程,我只给出粗略的中间步骤,详细进行最后一步。

  # 创建有资源限制的Deploymentkubectl create -f nginx-deploy1.yaml# 部署metrics-serverkubectl apply -f components.yaml​# 创建HPAkubectl create -f text1-hpa.yaml

最终监测如图:

2.1新出现的问题

即使我的siege-deploy 虽然跑满了,但是我的nginx-deployment1始终cpu使用率是1%,达不到扩容标准

2.2原因

使用kubectl get svc发现我只有一个默认的kubernetes Service,而 没有名为 nginx-deployment1 的 Service,因此 siege Pod 发出的请求根本打不到任何 nginx Pod,导致 HPA 监控不到负载

2.3解决方法:

立即创建 Service(把流量导到 nginx Pod)

之所以要 Service,是为了让 压力流量真正打到这些 Pod 上,否则 Pod 一直空转,CPU/内存永远上不去,HPA 自然不起作用。

Service 只是把外部流量导进来,让 Pod 真正“吃”到负载

  # 以下命令只会直接调用 apiserver 创建 Service 对象kubectl expose deployment nginx-deployment1 --name=nginx-deployment1 --port=80 --target-port=80​# 查看已有的service服务kubectl get svc
2.4实施最终步骤
 # 创建测压deploykubectl create -f siege-deploy.yaml​# 验证是否创建成功kubectl get deploykubectl get po​# 双开实时监控自动扩容和缩容# HPA 在 CPU 利用率低于目标值(3%) 并持续默认 5 分钟后,会自动把副本缩回最小值kubectl get hpa -w​# 暂停脚本(就是把Pod副本数设置为0即可)kubectl scale deployment siege-deploy --replicas=0# 重启脚本(同理修改replicas即可)kubectl scale deployment siege-deploy --replicas=<你想要的数量,越多压力越高>

默认CPU 利用率低于目标值持续一会才缩容哈

PS:由于我的疏忽,k8sday08给的测压脚本里有个地方写错了,导致会监测不到负载,大家记得改改哦!!!

在command命令里的curl -s的for循环内的地址给nginx-deployment改为nginx-deployment1

command: ........ for i in $(seq 50); do curl -s http://nginx-deployment1.default.svc.cluster.local &

​ ..........

PS:本来今天打算也把service的学习内容搞好的,但是今天是星期天,就少学一点吧~嘿嘿其实完全是因为懒,明天继续开始服务发现的学习(包含service和ingress)

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

相关文章:

  • C# 反射和特性(自定义特性)
  • 股票术语:“支撑位”
  • 解码词嵌入向量的正负奥秘
  • 一张图总结 - AI代理上下文工程:构建Manus的经验教训
  • Python多线程、锁、多进程、异步编程
  • Linux | i.MX6ULL网络通信-套字节 TCP(第十七章)
  • 【k8s】Kubernetes核心概念与架构详解
  • 4.8 Vue 3: provide / inject 详解
  • LEA(Load Effective Address)指令
  • MACS2简介
  • 欠拟合和过拟合的特征标志,有什么方法解决,又该如何避免
  • 评测系统构建
  • 20.LeNet
  • [逆向知识] AST抽象语法树:混淆与反混淆的逻辑互换(二)
  • 2001-2024年中国玉米种植分布数据集
  • Cesium学习(二)-地形可视化处理
  • AutoSar BSW介绍
  • PyTorch 面试题及详细答案120题(01-05)-- 基础概念与安装
  • 全星质量管理 QMS:驱动制造业高质量发展的核心工具
  • 雷卯针对香橙派Orange Pi 5 Ultra开发板防雷防静电方案
  • Java研学-SpringCloud(五)
  • 如何理解“速度模式间接实现收放卷恒张力控制“
  • 题目2:使用递归CTE分析产品层级关系
  • 【从零开始学习Redis】项目实战-黑马点评D2
  • 【会议跟踪】ICRA 2021 Workshop:Visual-Inertial Navigation Systems
  • 多线程—飞机大战(加入播放音乐功能版本)
  • 【Virtual Globe 渲染技术笔记】6 着色
  • C语言---第一个C语言程序
  • Tomcat下载、安装及配置详细教程
  • Hybrid Beamforming Design for OFDM Dual-Function Radar-Communication System