11.6.k8s实战-节点扩缩容
目录
一,需求描述
二、集群缩容-节点下线
1,节点下线案例说明
2,查看现有节点
3,查看所有名称空间下的pod
编辑4,驱逐下线节点的pod
5,驱逐后再次查看pod
6,驱逐pod后再次查看节点信息
7,给要下线的节点打上污点
8,再次查看要下线节点的pod
9,下线节点重置
9.1.需要到要下线的节点中执行“重置”命令,重置下线节点
9.2. 删除要下线节点的cni网络目录
9.3.清空路由规则
9.4.查看打印规则
10,删除掉节点
三、集群扩群-节点上线
1,给上线节点安装必要组件
2,master节点创建token
3,master查看刚刚创建的token
4,新节点使用token加入集群
5,验证是否成功
一,需求描述
生产环境中,对于k8s已有环境进行扩容和缩容是比较常见的操作,比如现有k8s集群资源不足,就需要扩容节点,就是将物理机配置加入k8s集群node;
或者说当前k8s集群工作不饱和,有大量空闲的机器资源,闲置浪费严重,所以需要缩容,就是将物理机配置退出k8s集群node;
二、集群缩容-节点下线
我们从总体架构中(第一天就让大家背下来了,不知道的回去背下来)知道,k8s集群监控一个节点的cpu、内存、磁盘空间、文件系统inode等资源是依靠kubelet组件;
当这些资源中的一个或者多个达到特定的消耗水平(消耗到一定程度了),kubelet就会主动将节点上的一个或者多个pod强制进行“驱逐”,以防止当前node节点资源无法正常分配,而引发内存溢出(OOM);
1,节点下线案例说明
我们需要先把要下线的node节点中的pod驱逐,模拟下线节点(node节点可能因为硬件故障或者其他原因,有下线的需求)
2,查看现有节点
[root@k8s1 k8s-yaml]# kubectl get nodes
3,查看所有名称空间下的pod
[root@k8s1 k8s-yaml]# kubectl get pods -o wide -A
4,驱逐下线节点的pod
驱逐一个节点的所有pod;但是需要排除daemonset资源创建的pod,因为,dadmonset资源是根据节点数量来创建pod的,若不排除,则会驱逐不了;
[root@k8s1 k8s-yaml]# kubectl drain k8s2 --ignore-daemonsets
参数介绍
--ignore-daemonsets #daemonset资源不能被驱逐,需要排除,加这个选项参数排除;
--delete-emptydir-data #如果无法驱逐成功,再加这个参数;
5,驱逐后再次查看pod
驱逐pod后,我们会发现,k8s233还存在两个pod;一个是flannel组件还有一个是kube-proxy代理pod;我们不用管这两个没有被驱逐的pod;
[root@k8s1 k8s-yaml]# kubectl get pods -o wide -A | grep k8s2
6,驱逐pod后再次查看节点信息
[root@k8s1 k8s-yaml]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s1 Ready control-plane,master 13d v1.23.17
k8s2 Ready,SchedulingDisabled <none> 13d v1.23.17
7,给要下线的节点打上污点
因为要将节点下线,避免在下线过程中,有人往这个节点中创建资源,所以保守起见,给它设置个污点;双保险
kubectl taint node k8s2 k8s=oslee:NoExecute
8,再次查看要下线节点的pod
这个时候会发现,仅剩下kube-proxy了,你就可以将节点直接下线了;
[root@k8s1 k8s-yaml]# kubectl get pods -o wide -A | grep k8s2
9,下线节点重置
9.1.需要到要下线的节点中执行“重置”命令,重置下线节点
[root@k8s2 ~]# kubeadm reset -f
9.2. 删除要下线节点的cni网络目录
[root@k8s2 ~]# rm -rf /etc/cni/net.d
9.3.清空路由规则
[root@k8s2 ~]# iptables -F
9.4.查看打印规则
iptables-save
10,删除掉节点
注意,master节点执行
[root@k8s1 k8s-yaml]# kubectl delete nodes k8s2
node "k8s2" deleted# 验证
[root@k8s1 k8s-yaml]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s1 Ready control-plane,master 13d v1.23.17
温馨提示:
1,当我们直接下线一个节点的时候,该节点的pod将不会立刻被检测出来故障,大概5分钟左右才能将损坏的pod在其他节点中创建,但是再次之前,会优先发现该的状态为“Notready”;
2,综上所述,我们生产环境中应该监控nodes的状态,当然,pods重启次数也需要关注哦;所以说,要报账pod业务正常运行,必须监控nodes的状态;
三、集群扩群-节点上线
1,给上线节点安装必要组件
可参考:3.2.k8s搭建-kubeadm_为docker做linux内核转发-CSDN博客
2,master节点创建token
kubeadm token create --print-join-command
参数说明
--print-join-command #打进加入token的命令
--ttl 0 #token的过期时间,0代表无限期;
#################################
#token的名称规则:
[a-z0-9]{6})\\.([a-z0-9]{16}
3,master查看刚刚创建的token
kubeadm token list
4,新节点使用token加入集群
在新节点执行
kubeadm join 192.168.11.11:6443 --token 1kum3s.20vvoag1zjp88a7e --discovery-token-ca-cert-hash sha256:40e957a9fe26974447bd43a8e0d56495fd0c2642a2e93bc6b9c042e3baead7a5
5,验证是否成功
[root@k8s1 k8s-yaml]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s1 Ready control-plane,master 13d v1.23.17
k8s2 Ready <none> 2m15s v1.23.17
相关文章:

11.6.k8s实战-节点扩缩容
目录 一,需求描述 二、集群缩容-节点下线 1,节点下线案例说明 2,查看现有节点 3,查看所有名称空间下的pod 编辑4,驱逐下线节点的pod 5,驱逐后再次查看pod 6,驱逐pod后再次查看节点信息…...

相亲交友APP系统|婚恋交友社交软件|语音聊天平台定制开发
在现代社会,婚恋交友已经成为了人们日常生活中的一项重要任务。为了方便用户进行相亲交友活动,各种相亲交友APP系统和婚恋交友社交软件应运而生。本文将介绍相亲交友APP系统、婚恋交友社交软件的开发以及语音聊天平台的定制开发的相关知识和指导。 一、…...

2005-2022年款福特福克斯维修手册和电路图线路图接线图资料更新
经过整理,2005-2022年款福特福克斯全系列已经更新至汽修帮手资料库内,覆盖市面上99%车型,包括维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传感器、保险丝盒图解对…...

nodejs爬取小红书图片
昨天的文章已经描述了可以抓取评论区内容, 抓取图片内容和抓取评论区的内容基本一致 我们可以看到接口信息中含有图片链接,我们要做的就是爬取图片链接然后下载 这边要用到的模块为const downloadrequire(download) 将爬到的图片链接存放到images数组…...

MySQL从5.7升级到8.0步骤及其问题
MySQL从5.7升级到8.0步骤及其问题 前言 本文源自微博客,且以获得授权,请尊重版权。 一、需求背景 Docker环境下,MySQL5.7升级到8.0,数据迁移时使用的是mysqldump方式迁移。 二、迁移步骤 数据备份: docker exec -i 1…...

中年帕金森:守护健康,从容面对生活挑战
在快节奏的现代生活中,中年人群面临着越来越多的健康挑战。其中,帕金森病作为一种常见的神经系统疾病,逐渐引起了人们的关注。帕金森病不仅影响患者的身体健康,还对其日常生活造成极大的困扰。那么,我们该如何应对中年…...
oracle块跟踪
1.查询块跟踪 select status,filename,bytes from v$block_change_tracking;2.打开块跟踪 ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE /home/oracle/block_change_tracking.log;3.关闭块跟踪 ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;4.解释 Oracle数据…...

【机器学习】第3章 K-近邻算法
一、概念 1.K-近邻算法:也叫KNN 分类 算法,其中的N是 邻近邻居NearestNeighbor的首字母。 (1)其中K是特征值,就是选择离某个预测的值(例如预测的是苹果,就找个苹果)最近的几个值&am…...
求和 最大值 最小值 reduce Math.min Math.max
let arr [ 8,4,3,9,2]let sum arr.reduce((a,b) > ab)console.log(sum) // 求和 26let max arr.reduce((a,b) > a>b?a:b)console.log(max) // 最大值 9console.log(Math.max(...arr))let min arr.reduce((a,b) > a<b?a:b)console.log(min) // 最小值 2co…...
MyBatis 源码分析--获取SqlSession
前言: 前文我们从源码层面梳理了 SqlSessionFactory 的创建过程,本篇我们继续分析一下 SqlSession 的获取过程。 初识 MyBatis 【MyBatis 核心概念】 案例代码: public class MyBatisTest {Testpublic void test() throws IOException {/…...

Upload-Labs:Pass - 1(JS前端白名单)
Pass_1 1. 上传测试2. 代码审计**获取文件输入的值**:**检查是否选择了文件**:**定义允许的文件类型**:**提取文件的扩展名**:**检查文件类型是否允许上传**:**构建错误消息并提醒用户**: 3.绕过思路3.1 将…...

vue大作业-实现学校官网
vue大作业-实现学校官网 基于vue2实现的学校官网 项目展示 学校官网介绍 欢迎访问我们学校的官方网站,这里为您提供了全面的信息和资源,帮助您更好地了解我们的教育理念、教学资源和学术活动。 首页 首页是您了解我们学校的起点。这里展示了学校的最…...
24面试记录002
文章目录 12、brpc的优化2.1 brpc网络有啥降级? 3、移动语义4、python协程 二、1. mq怎么保障数据的顺序?3.brpc中上下游通信,怎么测评新增字段大小,对耗时的影响? 1 1、brpc和grpc区别,为啥选择brpc? gr…...
cocos 按钮
1、创建按钮 2、创建脚本 3、将脚本挂载到其他节点上 4、将节点和按钮绑定 即可实现点击按钮触发脚本。 在触发的脚本函数里面设置按钮节点的位置,将其移除屏幕,可以实现点击消失按钮的效果。...

文件扫描工具都有哪些?职场大佬都在用的文本提取工具大盘点~
回想起刚毕业初入职场那阵子,领导让帮忙把纸质文件扫描提取为文本时,还只会傻乎乎地一点点操作,属实是费劲得很! 好在后面受朋友安利,找到了4个能够快速实现文件扫描文字提取的方法,这才让我的办公效率蹭蹭…...

【学习】程序员资源网站
1 书栈网 简介:书栈网是程序员互联网IT开源编程书籍、资源免费阅读的网站,在书栈网你可以找到很多书籍、笔记资源。在这里,你可以根据热门收藏和阅读查看大家都在看什么,也可以根据技术栈分类找到对应模块的编程资源,…...
游戏缓存与异步持久化的完美邂逅
1、问题提出 游戏服务器,需要频繁的读取玩家数据,同时也需求频发修改玩家数据,并持久化到数据库。为了提高游戏服务器的性能,我们应该怎么处理呢? 2、针对读——使用缓存 缓存,是指应用程序从数据库读取完数据之后,就将数据缓存在进程内存或第三方内存(例如redis)。…...

MySQL 高级 - 第十二章 | 数据库的设计规范
目录 第十二章 数据库的设计规范12.1 为什么需要数据库设计12.2 范式12.2.1 范式简介12.2.2 范式都包括哪些12.2.3 键和相关属性的概念12.2.4 第一范式(1st NF)12.2.5 第二范式(2nd NF)12.2.6 第三范式(3rd NF…...

【Python】AJAX
AJAX基础 一、AJAX1.1 概述1.2 XMLHttpRequest对象1.3 AJAX请求六部曲1.4 图解AJAX请求步骤 二、jQuery与AJAX2.1 jQuery.get()2.2 jQuery.getJSON()2.3 jQuery.post()2.4 jQuery.ajax() 三、Django使用AJAX3.1 请求类型3.2 PUT与PATCH的区别3.3 接收及响应JSON3.3.1 接收JSON3…...
scikit-image安装报错
scikit-image安装报错: pip install scikit-image0.21.0 报错信息: Collecting PyWavelets>1.1.1 (from scikit-image0.21.0) Installing build dependencies … error error: subprocess-exited-with-error 解决方法: 提前安装好PyWave…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...

回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...