k8s 维护node与驱逐pod

news2024/10/7 19:36:46

1.维护node节点

设置节点状态为不可调度状态,执行以下命令后,节点状态会多出一个SchedulingDisabled的状态,即新建的pod不会往该节点上调度,本身存在node中的pod保持正常运行

kubectl cordon k8s-node01

kubectl get node

2.驱逐pod

在node节点设置为不可调度状态后,就可以开始驱逐本节点上的pod了

kubectl drain k8s-node01 --ignore-daemonsets --delete-local-data

--delete-local-data:在驱逐节点之前,删除该节点上的 Pod 的本地数据。本地数据包括 Pod 的日志、镜像和其他本地数据。如果不添加此选项,则本地数据将保留在节点上,并且需要手动清理

--ignore-daemonsets:忽略 DaemonSet 类型的 Pod。DaemonSet 是一种在 Kubernetes 集群的每个节点上运行一个 Pod 的控制器。如果不添加此选项,则 kubectl drain 命令会尝试驱逐所有类型的 Pod,包括 DaemonSet 类型的 Pod。在某些情况下,DaemonSet 类型的 Pod 是必需的,因此应该使用此选项来忽略它们

驱逐pod的工作流程:

1.首先,Kubernetes 会将 Pod 标记为“删除中”,并阻止新的请求发送到该 Pod

2.然后,Kubernetes 会向 Pod 发送 SIGTERM 信号,触发优雅关闭。在容器中运行的进程可以捕获此信号并执行清理操作

3.如果在默认的 30 秒的优雅期内 Pod 没有关闭,则 Kubernetes 会发送 SIGKILL 信号来强制终止 Pod

如果实在驱逐不掉可以加上--force 参数

--force:强制驱逐节点上的所有 Pod。如果不添加此选项,则 kubectl drain 命令会等待所有 Pod 关闭或重新调度到其他节点上。如果某些 Pod 无法正常关闭或重新调度,则 kubectl drain 命令会一直等待,直到超时。使用 --force 选项可以强制终止所有 Pod 并立即驱逐节点。需要注意的是,这可能会导致数据丢失或其他不良影响,因此应该谨慎使用

在node节点驱逐完所有pod后,可以对该node节点升级硬件资源等操作

3.删除pod

若是在新加入工作节点,只想调度一部分pod到新节点上的情况下,需要使用删除pod的方法去实现

需要对所有旧的node节点都设置不可调度状态,在执行删除pod操作

kubectl cordon k8s-node02

kuebctl delete pod pod名称 -n 名称空间

此时被删除的pod就会调度到新的node节点上

删除pod的工作流程:

1.首先,Kubernetes 会将 Pod 标记为“删除中”,并阻止新的请求发送到该 Pod

2.然后,Kubernetes 会向 Pod 发送 SIGTERM 信号,触发优雅关闭。在容器中运行的进程可以捕获此信号并执行清理操作

3.如果在默认的 30 秒的优雅期内 Pod 没有关闭,则 Kubernetes 会发送 SIGKILL 信号来强制终止 Pod

也可以在delete命令中使用如下参数修改默认的优雅关闭时间--grace-period=30

调度完成后,恢复旧的node节点为可调度状态

kubectl uncordon k8s-node02

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

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

相关文章

多线程并发环境生产者-消费者,kotlin

多线程并发环境生产者-消费者&#xff0c;kotlin 多个生产者-多个消费者&#xff0c;消费者竞争抢占生产者制造的资源。 //存放资源的仓储 val store arrayOfNulls<Int>(1)//资源 var RESOURCE: Int 0fun producer(tid: Long) {synchronized(store) {if (isFull()) {…

【MySQL】- 02MySQL explain执行

目录 1.使用explain语句去查看分析结果2.MYSQL中的组合索引3.使用慢查询分析&#xff08;实用&#xff09;4.MYISAM和INNODB的锁定explain用法详解关于MySQL执行计划的局限性&#xff1a;备注&#xff1a; 1.使用explain语句去查看分析结果 如explain select * from test1 whe…

MicroPython应用基础-准备MicroPython开发板

MicroPython应用基础-准备基于MM32F5的MicroPython开发板 文章目录 MicroPython应用基础-准备基于MM32F5的MicroPython开发板引言硬件软件搭建MicroPython编译环境获取MicroPython源码编译MicroPython源码生成固件下载MicroPython固件到电路板 运行第一个样例工程 引言 本文主…

JavaScript变量、数据类型、运算符

1. 变量 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, in…

GoWeb -- gin框架的入门和使用

认识gin go流行的web框架 go从诞生之初就带有浓重的开源属性&#xff0c;其原生库已经很强大&#xff0c;即使不依赖框架&#xff0c;也能进行高性能开发&#xff0c;又因为其语言并没有一定的设计标准&#xff0c;所以较为灵活&#xff0c;也就诞生了众多的框架&#xff0c;各…

使用朴素贝叶斯过滤垃圾邮件

使用朴素贝叶斯过滤垃圾邮件 文章目录 使用朴素贝叶斯过滤垃圾邮件流程准备数据构建训练集和测试集分类电子邮件 完整测试代码&#xff1a;欢迎关注公众号【三戒纪元】 朴素贝叶斯的最著名的应用&#xff1a;过滤电子邮件垃圾。 流程 收集数据&#xff1a;提供文本文件准备数据…

【ISO14229_UDS刷写】-3-$36诊断服务TransferData理论部分

总目录&#xff1a;&#xff08;单击下方链接皆可跳转至专栏总目录&#xff09; 《UDS/OBD诊断需求编辑工具》总目录https://blog.csdn.net/qfmzhu/article/details/123697014 目录 1 $0x36 TransferData诊断服务描述 2 0x36服务请求消息 2.1 0x36服务请求消息定义 2.2 0…

【C++系列P1】带上这篇基础小宝典,向特性奇多的C++进发吧!勇士们!(持续更新ing~)

前言 大家好吖&#xff0c;欢迎来到 YY 滴 C系列 &#xff0c;热烈欢迎&#xff01;(持续更新ing~&#xff09;本章主要内容面向刚刚学完C语言&#xff0c;准备或正在接触C的老铁。而往往C奇多的小特性和知识点让铁铁们头晕晕脑涨涨&#xff0c;因而本章收纳了许多C中零散的知识…

跨境电商系统源码分享,解决你的电商难题

作为跨境电商领域的专家&#xff0c;我在这里为你分享跨境电商系统源码&#xff0c;帮助你解决各种电商难题&#xff01;本文将为你提供全面而专业的指导&#xff0c;让你的电商之路更加顺畅。 为什么选择跨境电商系统源码&#xff1f; 跨境电商系统源码是现代电商业务管理的…

MongoDB超全语法大全

MongoDB 安装教程 一、介绍 mongodb数据库是非关系数据库&#xff0c;mongodb中没有表的概念&#xff0c;数据都是存储在集合中 易扩展&#xff1a; NoSQL数据库种类繁多&#xff0c; 但是⼀个共同的特点都是去掉关系数据库的关系型特性。 数据之间⽆关系&#xff0c; 这样就…

如何运行Node.js脚本及读取环境变量

目录 1、如何从CLI 运行Node.js 脚本 2、将字符串作为参数传递到节点&#xff0c;而不是文件路径 3、自动重新启动应用程序 4、如何从Node.js中读取环境变量 1、如何从CLI 运行Node.js 脚本 运行Node.js程序的通常方法是运行全局可用的Node命令&#xff08;一旦安装Node.js…

[论文分享] When deep learning met code search

When deep learning met code search [ESEC/FSE 2019] Jos Cambronero MIT CSAIL U.S.A. Hongyu Li Facebook, Inc. U.S.A. SeohyunKim Facebook,Inc. U.S.A. KoushikSen EECSDepartment,UCBerkeley U.S.A. SatishChandra Facebook,Inc. U.S.A. 最近有多个关于使用深度神经网…

ASP.NET 未能找到类型或命名空间名称“HttpRequestMessage”

引入System.Net.Http后&#xff0c;运行页面还是报错 using System.Net.Http;chatGPT解释需要安装Microsoft.AspNet.WebApi.Client包&#xff0c;IIS安装的包文件存储在bin目录下&#xff0c;安装包后bin目录多出了一些列文件 运行页面后还是报错 需要在web.config配置文件…

【ISO14229_UDS刷写】-6-$34,$35,$36,$37诊断服务用于downloading下载/uploading上载数据的消息流示例

总目录&#xff1a;&#xff08;单击下方链接皆可跳转至专栏总目录&#xff09; 《UDS/OBD诊断需求编辑工具》总目录https://blog.csdn.net/qfmzhu/article/details/123697014【ISO14229_UDS刷写】-1-$34诊断服务RequestDownload理论部分https://blog.csdn.net/qfmzhu/article…

VM600 CPUR2 机架控制器和通信接口卡

VM600 CPUR2和IOCR2机架控制器和通信接口卡对是一个中央处理器(CPU)卡对&#xff0c;作为Meggitt振动计产品线中VM600机架机械保护系统(MPS)和/或状态监控系统(CMS)的系统控制器和数据通信网关。 注:不同版本的CPUx/IOCx框架控制器和通信接口卡对可用&#xff0c;如下所示: C…

初探 Compose for Wear OS:实现一个简易选择APP

前言 俗话说&#xff0c;人生有三大难题&#xff1a;早上吃啥、中午吃啥、晚上吃啥。 这个问题一度困扰着无数的人&#xff0c;直到一款帮你选择吃什么的神器《今天吃啥》出现&#xff0c;人们再也不用为了每天吃啥而犯愁了。 哈哈&#xff0c;以上纯属抖机灵。 最近访问谷歌…

Spring MVC数据绑定和响应

数据绑定 在程序运行时&#xff0c;Spring MVC接收到客户端的请求后&#xff0c;会根据客户端请求的参数和请求头等数据信息&#xff0c;将参数以特定的方式转换并绑定到处理器的形参中。Spring MVC中将请求消息数据与处理器的形参建立连接的过程就是Spring MVC的数据绑定。 …

电力监控系统在中原科技城智慧能源配电工程中的应用

摘 要&#xff1a;随着社会经济的快速发展&#xff0c;我国变电站正朝着现代化的方向不断发展&#xff0c;自动化设备以及继电保护装置凭借自身优异性能而获得广泛应用。本文介绍的AM5SE系列的微机保护装置&#xff0c;可以针对中原科技城智慧能源配电工程中不同保护对象提供对…

真无线蓝牙耳机什么牌子好?盘点五款质量好的蓝牙耳机

相信很多人都有过这样的经历&#xff0c;早 晚高峰像沙丁鱼般被挤在公交或地铁上&#xff0c;嘈杂的环境、工作的劳累让你只想听听音乐追追剧&#xff0c;给自己一些放松的时光。可拿出有线耳机却常常被挤掉&#xff0c;更有被扯到耳朵的时候。想换一款蓝牙耳机&#xff0c;但面…

Kubernetes 证书详解

K8S 证书介绍 在 Kube-apiserver 中提供了很多认证方式&#xff0c;其中最常用的就是 TLS 认证&#xff0c;当然也有 BootstrapToken&#xff0c;BasicAuth 认证等&#xff0c;只要有一个认证通过&#xff0c;那么 Kube-apiserver 即认为认证通过。下面就主要讲解 TLS 认证。 …