Kubernetes之节点维护二三事

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

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
随机主题
打起来了? 以军再次发起“斩首行动”, 以色列或被围攻, 美英失声泽连斯基介绍西方套路: 西方援乌看似前进了一步, 但提前退了两步新西部、新制造、新服务 第六届西洽会开幕梦幻西游:安东1093神器扇加盟夫子庙,曲阜冲2000万战神王红权星近三月直播13场销售额超2500万:卖每瓶3000元的洗发水备受追捧!听说特别国债首日一度大涨25% 但为何与你无关呢?黑龙江春耕生产即将全面告捷俄罗斯别尔哥罗德市传出多次爆炸声,此前已发布导弹警报吞噬星空大改, 界中界血腥混战, 罗峰抱大腿, 雾大人杀疯了亚当·兰伯特的中国改造: 告别高跟鞋, 美甲, 欢迎甜心版张震岳!爱如潮水! 四川大凉山孩子们的“愿望清单”, 被浙江人承包了湖人引援新动向: 天时地利人和齐聚, 2年6950万锁定17+11内线巨塔星途凌云w者版领衔 20万以内四款质价比超高的SUV三个如花似玉的公主咋就出不了一个王后?小米SU7上市之后,新能源二手车绷不住了,特斯拉也拉裤兜子了新趋势!北青:伊万征调多名跑动能力和身体条件俱佳的国脚!跌倒6.25万, 可如今却混到没人要, 最失败的小钢炮梦幻西游: 雪山A哥买物暴伤害装备, 蝗虫家族向商人霸气喊话!郭有才必须停播, 说他是教育界的毒瘤, 其实是名副其实别急,到跳水大赛赛点了美国涨新能源车关税因为拆了海鸥?中国新能源车崛起老美挡不住
最新回复(0)