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

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实战-节点扩缩容

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

相亲交友APP系统|婚恋交友社交软件|语音聊天平台定制开发

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

2005-2022年款福特福克斯维修手册和电路图线路图接线图资料更新

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

nodejs爬取小红书图片

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

MySQL从5.7升级到8.0步骤及其问题

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

中年帕金森:守护健康,从容面对生活挑战

在快节奏的现代生活中&#xff0c;中年人群面临着越来越多的健康挑战。其中&#xff0c;帕金森病作为一种常见的神经系统疾病&#xff0c;逐渐引起了人们的关注。帕金森病不仅影响患者的身体健康&#xff0c;还对其日常生活造成极大的困扰。那么&#xff0c;我们该如何应对中年…...

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-近邻算法&#xff1a;也叫KNN 分类 算法&#xff0c;其中的N是 邻近邻居NearestNeighbor的首字母。 &#xff08;1&#xff09;其中K是特征值&#xff0c;就是选择离某个预测的值&#xff08;例如预测的是苹果&#xff0c;就找个苹果&#xff09;最近的几个值&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

前言&#xff1a; 前文我们从源码层面梳理了 SqlSessionFactory 的创建过程&#xff0c;本篇我们继续分析一下 SqlSession 的获取过程。 初识 MyBatis 【MyBatis 核心概念】 案例代码&#xff1a; public class MyBatisTest {Testpublic void test() throws IOException {/…...

Upload-Labs:Pass - 1(JS前端白名单)

Pass_1 1. 上传测试2. 代码审计**获取文件输入的值**&#xff1a;**检查是否选择了文件**&#xff1a;**定义允许的文件类型**&#xff1a;**提取文件的扩展名**&#xff1a;**检查文件类型是否允许上传**&#xff1a;**构建错误消息并提醒用户**&#xff1a; 3.绕过思路3.1 将…...

vue大作业-实现学校官网

vue大作业-实现学校官网 基于vue2实现的学校官网 项目展示 学校官网介绍 欢迎访问我们学校的官方网站&#xff0c;这里为您提供了全面的信息和资源&#xff0c;帮助您更好地了解我们的教育理念、教学资源和学术活动。 首页 首页是您了解我们学校的起点。这里展示了学校的最…...

24面试记录002

文章目录 12、brpc的优化2.1 brpc网络有啥降级&#xff1f; 3、移动语义4、python协程 二、1. mq怎么保障数据的顺序&#xff1f;3.brpc中上下游通信&#xff0c;怎么测评新增字段大小&#xff0c;对耗时的影响&#xff1f; 1 1、brpc和grpc区别&#xff0c;为啥选择brpc? gr…...

cocos 按钮

1、创建按钮 2、创建脚本 3、将脚本挂载到其他节点上 4、将节点和按钮绑定 即可实现点击按钮触发脚本。 在触发的脚本函数里面设置按钮节点的位置&#xff0c;将其移除屏幕&#xff0c;可以实现点击消失按钮的效果。...

文件扫描工具都有哪些?职场大佬都在用的文本提取工具大盘点~

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

【学习】程序员资源网站

1 书栈网 简介&#xff1a;书栈网是程序员互联网IT开源编程书籍、资源免费阅读的网站&#xff0c;在书栈网你可以找到很多书籍、笔记资源。在这里&#xff0c;你可以根据热门收藏和阅读查看大家都在看什么&#xff0c;也可以根据技术栈分类找到对应模块的编程资源&#xff0c;…...

游戏缓存与异步持久化的完美邂逅

1、问题提出 游戏服务器,需要频繁的读取玩家数据,同时也需求频发修改玩家数据,并持久化到数据库。为了提高游戏服务器的性能,我们应该怎么处理呢? 2、针对读——使用缓存 缓存,是指应用程序从数据库读取完数据之后,就将数据缓存在进程内存或第三方内存(例如redis)。…...

MySQL 高级 - 第十二章 | 数据库的设计规范

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

【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安装报错&#xff1a; pip install scikit-image0.21.0 报错信息&#xff1a; Collecting PyWavelets>1.1.1 (from scikit-image0.21.0) Installing build dependencies … error error: subprocess-exited-with-error 解决方法&#xff1a; 提前安装好PyWave…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...