【kubernetes】关于k8s集群的污点、容忍、驱逐以及k8s集群故障排查思路

目录

一、污点(Taint) 

1.1污点介绍

1.2污点的组成格式

1.3当前 taint effect 支持如下三个选项 

1.4污点的增删改查

1.4.1验证污点的作用——NoExecute

1.4.2验证污点的作用——NoSchedule

1.4.3 验证污点的作用——PreferNoSchedule

1.5污点的配置与管理

二、容忍(Tolerations) 

2.1容忍的定义

2.2容忍的组成

2.3容忍的配置与管理

2.4其它注意事项

三、资源优化 

3.1多master使用

3.2Node更新

3.3维护操作

3.3.1cordon

3.3.2 drain

3.3.3污点、容忍和驱逐 

四、Pod启动阶段(相位 phase)

4.1Pod启动阶段

4.2phase 的可能状态有

五、k8s常见的排障手段

5.1环境设置

5.2pod事件处理

5.3针对组件故障

5.4针对pod故障

5.5针对网络故障


一、污点(Taint) 

1.1污点介绍

节点亲和性,是Pod的一种属性(偏好或硬性要求),它使Pod被吸引到一类特定的节点。Taint 则相反,它使节点能够排斥一类特定的 Pod。

Taint 和 Toleration 相互配合,可以用来避免 Pod 被分配到不合适的节点上。每个节点上都可以应用一个或多个 taint ,这表示对于那些不能容忍这些 taint 的 Pod,是不会被该节点接受的。如果将 toleration 应用于 Pod 上,则表示这些 Pod 可以(但不一定)被调度到具有匹配 taint 的节点上。

使用 kubectl taint 命令可以给某个 Node 节点设置污点,Node 被设置上污点之后就和 Pod 之间存在了一种相斥的关系,可以让 Node 拒绝 Pod 的调度执行,甚至将 Node 已经存在的 Pod 驱逐出去。
 

1.2污点的组成格式

污点的组成格式如下:
key=value:effect

每个污点有一个 key 和 value 作为污点的标签,其中 value 可以为空,effect 描述污点的作用

1.3当前 taint effect 支持如下三个选项 

  • NoSchedule:表示 k8s 将不会将 Pod 调度到具有该污点的 Node 上
  • PreferNoSchedule:表示 k8s 将尽量避免将 Pod 调度到具有该污点的 Node 上
  • NoExecute:表示 k8s 将不会将 Pod 调度到具有该污点的 Node 上,同时会将 Node 上已经存在的 Pod 驱逐出去
     

master 就是因为有 NoSchedule 污点,k8s 才不会将 Pod 调度到 master 节点上 

1.4污点的增删改查

#设置污点
kubectl taint node node01 key1=value1:NoSchedule
 
#节点说明中,查找 Taints 字段
kubectl describe node node-name  
 
#去除污点
kubectl taint node node01 key1:NoSchedule-
 
 
kubectl taint node node01 键名=键值:NoSchedule
#增加污点
 
kubectl taint node node01 键名=键值:NoSchedule-
kubectl taint node node01 键名-
#删除
 
kubectl describe nodes node01|grep -A5 -i taint
#查看

  设置污点 

kubectl taint node node01 jiangsu=nanjing:NoSchedule
                               键=值

 节点说明中,查找 Taints 字段 

kubectl describe node node01|grep -i taints

去除污点

kubectl taint node node01 jiangsu:NoSchedule-

查看 Pod 状态,会发现 node02 上的 Pod 已经被全部驱逐(注:如果是 Deployment 或者 StatefulSet 资源类型,为了维持副本数量则会在别的 Node 上再创建新的 Pod

1.4.1验证污点的作用——NoExecute
kubectl taint node node01 check=no:NoExecute

置了污点为NoExecute效果会不允许新的pod调度到该node 还会自动驱逐运行中的pod

1.4.2验证污点的作用——NoSchedule

不会驱逐pod  也是强制污点

1.4.3 验证污点的作用——PreferNoSchedule

不是强制的  污点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值