Kubernetes之节点维护二三事

运维有笔谈2024-03-30 08:00:00  100

Kubernetes 在进行节点维护之前需要对节点执行驱离 kubectl drain xxx-node,驱离时会将节点上的 Pod 进行删除,以便它们漂移到其它节点上,当驱逐完毕之后,节点上的 Pod 都漂移到其它节点了,这时我们就可以放心的对 Node 节点进行操作了。

一、驱逐节点是一种有损操作,节点pod驱离的原理

封锁待驱离节点,节点首先会设为不可调度,避免新的 Pod 调度上来。

将该节点上的 Pod 删除。

ReplicaSet 控制器检测到 Pod 数减少,会重新创建一个 Pod,调度到新的节点上。

插个无关美女图片

二、注意点,以下情况下驱逐会导致服务不可用

1. 服务存在单点故障,所有 Pod 都在同一个节点上,驱离该节点时,就可能造成服务不可用。 对此我们可以使用pod反亲和特性来解决。

例如:

affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchExpressions: - key: k8s-app operator: In values: - kube-dns topologyKey: kubernetes.io/hostname

2. 服务没有单点故障,但刚好这个服务涉及的 Pod 全部都部署在这一批被驱离的节点上,所以这个服务的所有 Pod 可能会被同时被删,也可能造成服务的不可用。对此节点驱离尽量不要批量处理。

3. 服务没有单点故障,也没有全部部署到这一批被驱逐的节点上,但驱离时造成这个服务的一部分 Pod 短时间内被删,这个时间内服务的处理能力下降,会导致服务过载,部分请求无法处理,这就会降低服务的可用性。我们可以通过配置 PDB (PodDisruptionBudget) 来避免所有 Pod 同时被删除。

例如zookeeper服务pdb:

apiVersion: policy/v1beta1kind: PodDisruptionBudgetmetadata: name: zk-pdbspec: maxUnavailable: 1 selector: matchLabels: app: zookeeper

转载此文是出于传递更多信息目的。若来源标注错误或侵犯了您的合法权益,请与本站联系,我们将及时更正、删除、谢谢。
https://www.414w.com/read/86399.html
0
随机主题
张兰曝孙子被退学,总不去上课、没人管他、不做作业史上成色最低的一场欧联决赛——看联赛排名, 冠军第5, 亚军第14和平精英:敌人都被灭队了,女队友还是那么紧张第一视角试驾视频 2023款 捷尼赛思 G90 1/5山东青州: 小蜜蜂采蜜忙英国将建成第一座纪念LGBT(性少数群体)武装部队人员的纪念碑!G1东欧爆种, 不然想晋级都难? 森林狼绅士横扫独行侠不在话下张晋50岁生日晒全家福, 俩女儿长成翻版蔡少芬, 儿子烫卷发像爸爸广东省: 打造覆盖粤港澳大湾区主要区域的低空空中交通走廊, 探索开辟粤琼低空航线肖华: 目睹前夫张艺谋“梅开三度”, 离婚后孤身一人再也不谈感情「王阳明」——文成贤圣王阳明,千载光辉照后人#致每一个热爱生活的你你知道他是谁吗4-1, 6-3! 曼城太强, 7次吊打曼联, 足总杯151亿决战, 央视不直播1950年毛岸英牺牲, 9年后罗瑞卿密电任荣: 主席有一项任务交给你《在华德企ESG实践报告 2023》发布江西南康给佛山下战书, 《人民日报》火速点赞, 这一战有意思了米莱重申“将阿根廷美元化”承诺: 阿根廷央行将会停印比索, 让美元取而代之《庆余年2》范闲收服桑文, 他还不知, 桑文让他将来得以掌控庆国广东男篮出局后三大难题2.0T, 334马力, 双边四出排气! 轴距超2.8米, 德系豪华操控!售价2799元! AGM X6正式发布, 三防性能与创新功能并重
最新回复(0)