十二、Pod的扩缩容-手动/自动-HPA

在实际生产系统中,经常会遇到某个服务需要扩容的场景,也可能会遇到由于资源紧张或者工作负载降低而需要减少服务实例数量的场景。此时可以利用Deployment/RC的Scale机制来完成这些工作。

Kubernetes对Pod的扩缩容操作提供了手动和自动两种模式,手动模式通过运行kubectl scale命令或通过RESTful API对一个Deployment/RC进行Pod副本数量的设置,即可一键完成。自动模式则需要用户根据某个性能指标或者自定义业务指标,并指定Pod副本数量的范围,系统将自动在这个范围内根据性能指标的变化进行调整。

一、手动扩缩容机制

测试文件,pod副本数量为3个

apiVersion: apps/v1
kind: Deployment                         # Deployment类型
metadata:name: nginx-deployment                 # Deployment名称labels:                                # Deployment标签app: nginx
spec:                                    # Deployment配置replicas: 3                            # Deployment的副本selector:matchLabels:app: nginx                         # Deployment管理的Pod标签template:                              # Pod的定义metadata:labels:                            # Pod的标签app: nginxspec:                                # Pod的配置containers:- name: nginximage: registry.cn-hangzhou.aliyuncs.com/cyanjiang/nginx:1.0ports:- containerPort: 80

创建并查看

[root@k8s-master01 scahpa]#kubectl create -f deploy.yaml
deployment.apps/nginx-deployment created
[root@k8s-master01 scahpa]#kubectl get po
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-5ddfc76b5c-fqlgt   1/1     Running   0          8s
nginx-deployment-5ddfc76b5c-fxldw   1/1     Running   0          8s
nginx-deployment-5ddfc76b5c-qfs2q   1/1     Running   0          8s
[root@k8s-master01 scahpa]#kubectl get deploy
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3/3     3            3           92s

方式一:scale

通过kubectl scale命令可以将Pod副本数量从初始的3个更新为5个:

[root@k8s-master01 scahpa]#kubectl scale deployment nginx-deployment --replicas=6
deployment.apps/nginx-deployment scaled
[root@k8s-master01 scahpa]#kubectl get po
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-5ddfc76b5c-7xkj2   1/1     Running   0          7s
nginx-deployment-5ddfc76b5c-fqlgt   1/1     Running   0          2m24s
nginx-deployment-5ddfc76b5c-fxldw   1/1     Running   0          2m24s
nginx-deployment-5ddfc76b5c-nckgx   1/1     Running   0          7s
nginx-deployment-5ddfc76b5c-qfs2q   1/1     Running   0          2m24s
nginx-deployment-5ddfc76b5c-xfgdm   1/1     Running   0          7s

将–replicas的值设置为比当前Pod副本数量更小的数字,系统将会“杀掉”一些运行中的Pod,以实现应用集群缩容:

[root@k8s-master01 scahpa]#kubectl scale deployment nginx-deployment --replicas=1
deployment.apps/nginx-deployment scaled
[root@k8s-master01 scahpa]#kubectl get po
NAME                                READY   STATUS        RESTARTS   AGE
nginx-deployment-5ddfc76b5c-fqlgt   1/1     Terminating   0          3m22s
nginx-deployment-5ddfc76b5c-fxldw   0/1     Terminating   0          3m22s
nginx-deployment-5ddfc76b5c-nckgx   0/1     Terminating   0          65s
nginx-deployment-5ddfc76b5c-qfs2q   1/1     Running       0          3m22s
nginx-deployment-5ddfc76b5c-xfgdm   1/1     Terminating   0          65s
[root@k8s-master01 scahpa]#kubectl get po
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-5ddfc76b5c-qfs2q   1/1     Running   0          3m33s

方式二:edit

使用kubectl edit,编辑正在运行的deploy中replicas数量。

[root@k8s-master01 scahpa]#kubectl edit deploy nginx-deployment
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: apps/v1
kind: Deployment
metadata:annotations:deployment.kubernetes.io/revision: "1"creationTimestamp: "2024-11-29T11:15:19Z"generation: 3labels:app: nginxname: nginx-deploymentnamespace: defaultresourceVersion: "28395402"uid: 4124b756-6803-4671-8fd7-35b59f6040ae

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/62566.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu环境中RocketMQ安装教程

参考教程 https://blog.csdn.net/weixin_56219549/article/details/126143231 1、安装JDK,并配置环境变量(略) 2、下载RocketMQ安装包 RocketMQ下载地址,选择二进制包下载 unzip rocketmq-all-5.0.0-ALPHA-bin-release.zip 使…

传输控制协议(TCP)

传输控制协议是Internet一个重要的传输层协议。TCP提供面向连接、可靠、有序、字节流传输服务。 1、TCP报文段结构 注:TCP默认采用累积确认机制。 2、三次握手、四次挥手 (1)当客户向服务器发送完最后一个数据段后,发送一个FIN段…

我们来学mysql -- 事务之概念(原理篇)

事务的概念 题记一个例子一致性隔离性原子性持久性 题记 在漫长的编程岁月中,存在一如既往地贯穿着工作,面试的概念这类知识点,事不关己当然高高挂起,精准踩坑时那心情也的却是日了🐶请原谅我的粗俗,遇到B…

2024 ccpc 辽宁省赛 E(构造 思维?)L(二分+一点点数论知识?)

E 题意: 可以注意到: 我的两种方格都四个方格的大小。 所以 如果存在一种摆放方式 那么 4|nm。 再考虑一种特殊的情况 22 ,此时虽然我的积是4 但是无法摆放的。 1>对于 4 | n,或者 4 | m.我直接摆放第二种方格就可以了。 如果我n 是4 的…

自定义类型: 结构体、枚举 、联合

目录 结构体 结构体类型的声明 匿名结构体 结构的自引用 结构体变量的定义和初始化 结构体成员变量的访问 结构体内存对齐 结构体传参 位段 位段类型的声明 位段的内存分配 位段的跨平台问题 位段的应用 枚举 枚举类型的定义 枚举的优点 联合体(共用体) 联合…

道可云人工智能元宇宙每日资讯|第三届京西地区发展论坛成功召开

道可云元宇宙每日简报(2024年11月27日)讯,今日元宇宙新鲜事有: 工信部等十二部门印发《5G规模化应用“扬帆”行动升级方案》 11月25日,工业和信息化部等十二部门印发《5G规模化应用“扬帆”行动升级方案》。《方案》…

更多开源创新 挑战OpenAI-o1的模型出现和AI个体模拟突破

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

说说Elasticsearch查询语句如何提升权重?

大家好,我是锋哥。今天分享关于【说说Elasticsearch查询语句如何提升权重?】面试题。希望对大家有帮助; 说说Elasticsearch查询语句如何提升权重? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Elasticsearch 中&…

基于协同推荐的黔醉酒业白酒销售系统

文末获取源码和万字论文 摘 要 基于协同推荐的黔醉酒业白酒销售系统主要针对黔醉酒业的具体业务需求所设计,现阶段阶段我国大型企业都会有自己的电商平台以及销售管理系统,其功能对于中小型过于冗长复杂,成本也不是中小型企业能够承受的&…

【Redis】—0.1、Ubuntu20.04源码编译部署redis6.2.7

1、Redis下载 创建redis的目录:mkdir -p /data/db/redis 下载redis:https://redis.io/download/ 2、上传文件到目录后解压 tar xvf redis-6.2.7.tar.gz 3、安装redis的依赖软件更新gcc,装一系列软件包,gcc,g和make。 s…

Kubernetes——part11 云原生中间件上云部署 Rocketmqkafkazookeeper

Rocketmq rocketmq角色 RocketMQ由四部分构成:Producer、Consumer、Broker和NameServer 启动顺序:NameServer->Broker 为了消除单点故障,增加可靠性或增大吞吐量,可以在多台机器上部署多个nameserver和broker,并…

软件架构4+1视图详解

软件架构41视图详解 1. 用例视图(场景视图)2. 逻辑视图3. 开发视图4. 进程视图(运行视图)5. 物理视图(部署视图)6. 总结 软件架构是软件系统的骨架,它决定了系统的结构、行为和属性。为了更好地…

【开源免费】基于Vue和SpringBoot的校园资料分享平台(附论文)

博主说明:本文项目编号 T 059 ,文末自助获取源码 \color{red}{T059,文末自助获取源码} T059,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

浔川社团官方联合会已正式加入Devpress社区

浔川社团官方联合会已正式加入 Devpress 社区 链接:浔川社团官方联合会 个人主页 近日,浔川社团官方联合会正式宣布加入 Devpress 社区,这一举措标志着浔川社团在技术交流与合作领域迈出了重要一步。 浔川社团官方联合会一直致力于推动各类技…

基于深度学习和卷积神经网络的乳腺癌影像自动化诊断系统(PyQt5界面+数据集+训练代码)

乳腺癌是全球女性中最常见的恶性肿瘤之一,早期准确诊断对于提高生存率具有至关重要的意义。传统的乳腺癌诊断方法依赖于放射科医生的经验,然而,由于影像分析的复杂性和人类判断的局限性,准确率和一致性仍存在挑战。近年来&#xf…

电商项目--分布式文件存储FastDFS搭建

一、FastDFS环境搭建 我们使用Docker搭建FastDFS的开发环境 (1)拉取镜像 docker pull morunchang/fastdfs (2)运行tracker docker run -d --name tracker --nethost morunchang/fastdfs sh tracker.sh (3&#xf…

代理IP与百度在信息时代的交互

目录 一、代理IP的基本概念和工作原理 二、代理IP在百度搜索中的多重作用 解决网络延时问题,提高搜索速度 提高网络安全 隐藏用户的真实IP地址,保护个人隐私 突破访问限制,拓宽网络视野 三、代理IP在百度关键词排名优化中的应用 模拟…

(十一)Python3 接口自动化测试,Pytest-Allure报告的使用

(十一)Python3 接口自动化测试,Pytest-Allure报告的使用 1、安装和使用 1、安装pytest和allure-pytest插件: pip install pytest allure-pytest 2、在你的pytest测试用例中使用allure装饰器或者上下文管理器来生成报告。 例如,你可以使用@allure.feature装饰器来标记特性…

JavaScript中类数组对象及其与数组的关系

JavaScript中类数组对象及其与数组的关系 1. 什么是类数组对象? 类数组对象是指那些具有 length 属性且可以通过非负整数索引访问元素的对象。虽然这些对象看起来像数组,但它们并不具备真正数组的所有特性,例如没有继承 Array.prototype 上…

2024“蜀道山” RE 部分题解

Map_maze 题目描述 真真假假真真,你能够寻找到最后的终点吗? 附件下载 迷宫生成 v5 是一个长度为 105 的数组,被用作 15x15 的二维网格 int __cdecl sub_4010D0(_DWORD *a1, _DWORD *a2) {_DWORD *v2; // eax_DWORD *v3; // eaxint result; // eax_DWORD v5[1…