k8s之Pod驱逐迁移和Node节点维护

40 篇文章 29 订阅
订阅专栏

本篇是基于k8s-v1.18.0版本,参考https://cloud.tencent.com/developer/article/1552452。

一、环境说明

主机名ip系统版本docker版本
master192.168.148.124CentOS 7.6.181019.03.9
node01192.168.148.125CentOS 7.6.181019.03.9
node02192.168.148.126CentOS 7.6.181019.03.9

二、背景

当node节点进行如打补丁、操作系统升级等操作时,需停机维护,这就涉及pod驱逐迁移,本文将详细介绍node节点维护的整个过程。

三、pdb简介

  • pdb为poddisruptionbudgets缩写,意为主动驱逐保护;没有pdb,当进行节点维护时,如果某个服务的多个pod在该节点上,则节点的停机可能会造成服务中断或者服务降级。举个例子,某服务有5个pod,最低3个pod能保证服务质量,否则会造成响应慢等影响,此时该服务的4个pod在node01上,如果对node01进行停机维护,此时只有1个pod能正常对外服务,在node01的4个pod迁移过程中,就会影响该服务正常响应。
  • pdb能保证应用在节点维护时不低于一定数量的pod运行,从而保持服务质量。

准备工作

1、新建pod

cd /root/pkg/eg/
kubectl create deployment nginx1.18 --image=nginx:1.18 --dry-run -o yaml > nginx.yml
cat nginx.ym
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx1.18
  name: nginx1.18
spec:
  replicas: 5
  selector:
    matchLabels:
      app: nginx1.18
  strategy: {}
  template:
    metadata:
      labels:
        app: nginx1.18
    spec:
      containers:
      - image: nginx:1.18
        name: nginx
kubectl apply -f nginx.yml

在这里插入图片描述
五个pod,分布于node01和node02上
在这里插入图片描述

2、新建pdb

cd /root/pkg/eg
cat pdb-nginx.yaml
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  name: pdb-nginx
spec:
  minAvailable: 4
  selector:
    matchLabels:
      app: nginx1.18

新建pdb-nginx.yml,Label Selector和deployment一样都为app: nginx1.18,minAvailable: 4意为存活的nginx pod至少为4个。
在这里插入图片描述

四、节点维护

本文以节点node02维护为例介绍

1、设置节点不可调度

kubectl cordon node02

在这里插入图片描述
设置node02不可调度,查看各节点状态,发现node02为SchedulingDisabled,此时master不会将新的pod调度到该节点上,但是node02上pod还是正常运行。

2、驱逐节点上的pod

kubectl drain node02 --delete-local-data --ignore-daemonsets --force

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参数说明:

  • –delete-local-data :即使pod使用了emptyDir也删除;
  • –ignore-daemonsets :忽略deamonset控制器的pod,如果不忽略,deamonset控制器控制的pod被删除后可能马上又在此节点上启动起来,会成为死循环;
  • –force :不加force参数只会删除该NODE上由ReplicationController, ReplicaSet,DaemonSet,StatefulSet or Job创建的Pod,加了后还会删除’裸奔的pod’(没有绑定到任何replication controller)

可以看到同一时刻只有一个pod进行迁移,对外提供服务的pod始终有4个,这个也再次验证了同一时刻只有一个pod迁移,nginx服务始终有4个pod对外提供服务。

3、维护结束

kubectl uncordon node02

在这里插入图片描述
维护结束,重新将node02节点置为可调度状态。

五、pod回迁

pod回迁貌似还没什么好的办法,这里采用delete然后重建的方式回迁。

kubectl get po -o wide
kubectl delete pod nginx1.18-7646b89d65-7klpv nginx1.18-7646b89d65-ddn9p

在这里插入图片描述
可以在业务低峰nginx1.18-7646b89d65-7klpv和nginx1.18-7646b89d65-ddn9p,由于node02上的pod之前都被驱逐,此时资源使用率最低,所以pod重建时会调度值该节点,完成pod回迁。

六、节点删除

1、删除节点

实际运维过程中可能会删除某个node节点,本文还是以node02为例,介绍如果删除节点。

kubectl cordon node02
kubectl drain node02 --delete-local-data --ignore-daemonsets --force 
kubectl delete node node02

在这里插入图片描述
在这里插入图片描述

kubeadm reset

在这里插入图片描述

2、节点重新加入

master节点上运行

kubeadm token create --print-join-command  

在这里插入图片描述
node02上运行

modprobe br_netfilter  
kubeadm join 192.168.148.124:6443 --token 4r4c2u.29r7tm05i6h9nfyv     --discovery-token-ca-cert-hash sha256:af6e4d737cbd7e294036d7391a5931fba589942e777811bb6f74b77ccbda3cfc #node02上运行

在这里插入图片描述
查看node

kubectl get node

在这里插入图片描述

K8S安装笔记(三)—— 集群维护K8S离线安装
gmHappy
05-19 3万+
本章目标:了解K8S集群缩容,掌握集群维护基本功能,并模拟离线下完成K8S集群搭建。
k8s node节点停机维护pod如何迁移
Bertram的博客
03-07 2365
k8s node节点停机维护pod如何迁移
【Linux39-14】k8s集群调度与驱离(scheduling+Eviction)(节点分配、污点和容忍度)
weixin_46069582的博客
03-24 804
文章目录一、Kubernetes 调度器1.1 kube-scheduler二、节点选择约束方式2.1 nodeName2.2 nodeSelector2.3 亲和性与反亲和性2.3.1 节点亲和性(nodeAffinity)2.3.2 pod 间亲和性与反亲和性三、污点和容忍度3.1 污点3.2 容忍度四、其他调度策略4.1 cordon 停止调度4.2 drain 驱逐节点4.3 delete 删除节点 一、Kubernetes 调度器 【集群调度官方文档:https://kubernetes.i
k8s驱逐节点、重新加入、重装k8s
最新发布
qq_52787609的博客
05-08 337
安装、卸载Kubernetes。node节点重新加入集群的操作。
kubernetes集群新增/移除work节点
国产-达芬奇
02-27 998
为kubernetes集群新增work节点 一、环境介绍 kubernetes v1.20.4(目前是最新版) centos7 vmware虚拟出来的机器(注意:CPU至少2核,内存2G) docker18.06.0-ce 二、准备工作 可以完全参考:https://blog.csdn.net/javahuazaili/article/details/113926771链接文章 第二节“准备工作”部分的内容 三、生成数据 登入master节点。 1、生成token: kube...
K8S故障处理指南:临时设置节点为不可调度
m0_37680131的博客
01-14 1474
在Kubernetes中,节点驱逐是一种管理和维护集群的重要操作,允许节点维护、升级或者发生故障时从集群中移除,等到节点修复后,再重新承担pod调度功能。本文将介绍节点驱逐的基本概念、使用场景、解除驱逐的步骤以及注意事项。
k8s宕机pod自动迁移方案
07-24
k8s 宕机 Pod 自动迁移方案可以通过调整节点被标记为不健康的时间和 Pod节点不健康的容忍时长来实现。这将有助于在节点出现异常时及时将 Pod 驱逐并在其他健康节点上重建,以确保高可用性和服务的连续性。
k8spod监控看板
12-15
k8spod监控看板
K8s外部网络访问之NodePort资源附件
10-22
K8s外部网络访问之NodePort资源附件
K8S二进制安装--node节点部件kubelete和kube-proxy.txt
07-27
K8S二进制安装--node节点部件kubelete和kube-proxy.txt
k8s node节点监控
06-08
k8s node节点监控,可以显示node节点信息,监控node集群节点的状态
k8s等运维(二)
怨行客
03-23 235
nginx你用到了哪些模块,在proxy模块中你配置过哪些参数? nginx中rewrite有哪几个flag标志位(last、break、redirect、permanent),说一下都什么意思? You need to use nginx from all aspects. iptables: iptables只是linux防火墙的管理工具,真正实现防火墙功能的是netfilter– 内核中实现包过滤的内部结构 如何开启linux服务器路由转发功能? 笔者回答:echo “1” > /proc
k8s pod驱逐问题分析及解决
热门推荐
u012516914的专栏
11-09 1万+
1、问题现象及分析环境说明 环境说明:centos7.3Kubernetes1.14docker 1.18.9异常信息:kubectl get pod发现服务被驱逐,然后在调度到其它节点...
Kubernetes(K8S2020)从入门到实践(3)
02-17
Kubernetes,简称K8S,是一个开源,用于管理多个容器化的应用,提供了应用部署,规划,更新维护的一种机制。 学习要求:本课程学习需要具有一定的Linux基础,并掌握Docker相关知识点。 知识讲解:1. Kubernetes配置和密钥管理2. Kubernetes对象管理3. Kubernetes StatefulSet应用4. Kubernetes资源管理和Pod自动扩容5. Kubernetes调度器6. Kubernetes集群管理更多K8s课程:ü  Kubernetes(k8s2020)从入门到实践(1)ü  Kubernetes(k8s2020)从入门到实践(2)
k8s节点维护
m0_67505824的博客
03-16 434
1、 不可调度 设置节点不可调度 kubectl cordon k8s-node-1 恢复节点参与可调度 kubectl uncordon k8s-node-1 2、驱逐已经运行的业务容器 kubectl drain --ignore-daemonsets --delete-local-data <node> kubectl drain {{node-name}} #标记节点为不可调度,并驱逐节点上的pod ![image.png](https://upload-images.j
k8s 驱逐node节点
chuiyanyou9920的博客
08-07 4647
kubectl drain ip --delete-local-data --force --ignore-daemonsets kubectl uncordon ip 转载于:htt...
k8s新增删除node节点
qq_34434565的博客
02-15 1528
k8s新增删除node节点 1. 新增node节点 首先需要在节点所在服务器安装docker及k8s基础组件。 安装完毕后,在master节点查看token值。 ## 查看token值 [root@master01 home]# kubeadm token list TOKEN TTL EXPIRES USAGES DESCRIPTION
k8s驱逐策略
sophia__yu的博客
08-18 6818
一:为什么要有驱逐 pod.spec.containers[].resources中会存在cpu或memory的request和limit。即该pod请求的最小资源和Node结点可以给的最大资源。 当一个容器的cpu使用率超过limit时会被进行流控,而当内存超过limit时则会被oom_kill。 完全依赖于oom_kill并不是一个很好的方案,一来对于cpu要求高的容器没有作用,二来单纯将po...
k8s pod节点迁移
qq_15138049的博客
05-26 902
kubectl cordon # kubectl cordon sealos-k8s-node-03 kubectl drain # kubectl drain sealos-k8s-node-03 --delete-local-data --ignore-daemonsets --force ==>>> kubectl uncordon # kubectl uncordon sealos-k8s-node-04 参考:http://t.zoukankan.com/Dev0
k8snode节点宕机后pod怎么迁移
03-31
当一个node节点宕机后,k8s的调度器会将该节点上的pod自动迁移到其他可用节点上。这个过程是自动化的,由k8s的控制器管理。控制器会检测到node节点宕机后,将该节点上的pod标记为不可用,然后将它们重新调度到其他可用节点上,以确保服务的可用性。这个过程中,k8s会自动选择一个最佳的节点来重新调度pod,并确保pod之间的负载均衡。因此,当一个node节点宕机后,k8s会自动处理pod迁移,使服务能够继续正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • k8s之StatefulSet详解 60488
  • ingress-nginx详解和部署方案 49787
  • 基于Langchain-Chatchat + chatGLM3 轻松在本地部署一个知识库 7465
  • k8s的健康性检查-Health Check 7188
  • elasticsearch实战之xpack安装、head加密与xpack使用 6494

分类专栏

  • gitlab 29篇
  • LLM 4篇
  • k8s 40篇
  • 工具 12篇
  • 持续集成-CI&CD 20篇
  • python 4篇
  • mysql 12篇
  • elasticsearch 7篇
  • elk 6篇
  • 基础环境 11篇
  • Prometheus 11篇
  • docker 14篇
  • gitops 11篇
  • 运维常见问题处理 5篇
  • 文件系统之分布式存储 6篇
  • 笔记
  • 私有云平台 2篇
  • 自动化运维-ansible 6篇
  • 文档 5篇
  • 负载均衡 2篇
  • 日志 2篇
  • zk&kafka 1篇
  • kafka 1篇

最新评论

  • 基于Langchain-Chatchat + chatGLM3 轻松在本地部署一个知识库

    周彣: 大佬0.3版出来了

  • 基于MacBook Pro M1芯片运行chatglm2-6b大模型

    最美dee时光: 你的配置是怎么样呢?我本地是很快的,速度还是很可观的

  • 基于MacBook Pro M1芯片运行chatglm2-6b大模型

    酷酷のk: 回答问题很慢很慢很慢正常吗。答案一直在旋

  • 基于Langchain-Chatchat + chatGLM3 轻松在本地部署一个知识库

    sherlockyz: 为什么我的上传了本地文件到知识库,模型回答显示仍是根据自身能力回答的?

  • 基于Langchain-Chatchat + chatGLM3 轻松在本地部署一个知识库

    又是一年春风: 没下载全吧,网络的问题吧

大家在看

  • Go+beego高校教材销售系统的设计与实现
  • Echarts 303
  • IPython会话记录全指南:使用%logstart命令的深度解析
  • http~ 172
  • 带你学习PID算法2 14

最新文章

  • 在gitlab CICD中 小试 hooks:pre_get_sources_script 功能
  • 基于manifest文件批量将coding的仓库导入gitlab中
  • gitlab artifacts过期时间查看和清理
2024年12篇
2023年39篇
2022年22篇
2021年48篇
2020年75篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码布吉网站优化按天收费南澳网络广告推广布吉高端网站设计福永百姓网标王推广平湖网络推广丹竹头网络推广同乐网站优化按天扣费光明seo南澳网站优化按天计费松岗网站优化排名永湖网站改版石岩网站排名优化大鹏seo网站优化惠州设计网站吉祥百搜词包南山seo网站推广丹竹头网站建设东莞百搜词包荷坳网页设计横岗网站优化软件光明网站推广罗湖网站建设坂田建设网站民治网站排名优化坪山网站优化排名盐田SEO按效果付费同乐品牌网站设计大芬建网站龙华网页制作坪山网站seo优化歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化