当前位置: 首页 > wzjs >正文

专为网站做点击量网站优化网站

专为网站做点击量,网站优化网站,数字经济团体赛,永济市住房保障和城乡建设管理局网站k8s污点与容忍 k8s污点管理常用命令effect标记值查看污点添加污点删除污点 node污点与容忍污点容忍yaml示例容忍放大基于污点的驱逐驱逐时排除指定服务 设置master调度设置master尽量不调度允许master节点调度pod恢复Master Only状态将node标记为不可调度状态(节点警戒)设置nod…

k8s污点与容忍

    • k8s污点管理常用命令
      • effect标记值
      • 查看污点
      • 添加污点
      • 删除污点
    • node污点与容忍
      • 污点容忍yaml示例
      • 容忍放大
      • 基于污点的驱逐
      • 驱逐时排除指定服务
    • 设置master调度
      • 设置master尽量不调度
      • 允许master节点调度pod
      • 恢复Master Only状态
      • 将node标记为不可调度状态(节点警戒)
      • 设置node不可用并驱逐节点上的所有pod(腾空节点)
      • 设置node为可用

k8s污点管理常用命令


effect标记值

effect标记值


查看污点

对于k8s1.24+,master节点将不再添加node-role.kubernetes.io/master 标签, 只会添加node-role.kubernetes.io/control-plane标签。更多信息请参考 KEP-2067:重命名 kubeadm “master” 标签和污点。
https://kubernetes.io/zh-cn/blog/2022/04/07/upcoming-changes-in-kubernetes-1-24/

# 查看所有node的污点信息‌:ml-citation{ref="1,5" data="citationList"}  
kubectl describe nodes | grep -i Taints# 查看污点
kubectl describe nodes node名 |grep Taints
# Taints:   node.kubernetes.io/unreachable:NoSchedule

在这里插入图片描述


添加污点

# 添加污点
kubectl taint nodes node名 key=value:effect值# 添加 NoSchedule 污点
kubectl taint nodes node1 app=monitoring:NoSchedule# 添加 NoExecute 污点(驱逐现有 Pod)  
kubectl taint nodes node2 disk=ssd:NoExecute# 添加新污点  
kubectl taint nodes node1 app=logging:NoExecute# 添加 尽量不调度 PreferNoSchedule 
kubectl taint nodes k8s-master02 node-role.kubernetes.io/master:PreferNoSchedule## effect是标记值
kubectl taint nodes node1 key1=value1:NoSchedule
kubectl taint nodes node1 key1=value1:NoExecute
kubectl taint nodes node1 key2=value2:PreferNoSchedule# 给master1机器加NoSchedule污点--k8s1.23
kubectl taint nodes m1 node-role.kubernetes.io/control-plane:NoSchedule

在这里插入图片描述


删除污点

# 去除污点
kubectl taint nodes node名 key:effec值-
## 或 
kubectl taint nodes node名 key=value-
## 建议
kubectl taint nodes node名 key-# 删除指定 key 和 effect 的污点  
kubectl taint nodes node1 app=monitoring:NoSchedule-# 删除所有 effect 类型的污点(需明确指定 key 和 effect)
kubectl taint nodes node2 disk=ssd:NoExecute-# 去除污点NoSchedule,最后一个"-"代表删除
kubectl taint nodes k8s-master02 node-role.kubernetes.io/master:NoSchedule-# 删除旧污点  
kubectl taint nodes node1 app=monitoring:NoSchedule-

在这里插入图片描述


node污点与容忍

参考: 官方污点文档

三只兔子的故事来了解k8s污点与容忍

为什么Node要使用污点:

  • 安全考虑
  • Node职责角色分工不同
  • 硬件不同

污点也类似于在node上打一个标签.例如专用节点,比如GPU,SSD等,一般pod不会运行在这种专用节点,如果pod想运行在这种专用节点上,需要配置污点容忍.

Taint: 污点,避免pod调度到特定Node上,相当于排斥Pod
Tolerations: 污点容忍,允许pod调度到带有特定Taints的Node上


污点容忍yaml示例

apiVersion: v1
kind: Pod
metadata:name: nginxlabels:env: test
spec:containers:- name: nginximage: nginximagePullPolicy: IfNotPresent# 污点容忍tolerations:# 容忍key=example-key 等effect值存在NoSchedule- key: "example-key"operator: "Exists"# value: "example-value"  # 可不配置effect: "NoSchedule"

容忍放大

k8s的一些基础静态pod,比如apiserver,配置的就是容忍放大,下方是示例
容忍放大,只要keyeffect存在即容忍.

apiVersion: v1
kind: Pod
metadata:name: apiserverlabels:env: test
spec:containers:- name: apiserverimage: apiserverimagePullPolicy: IfNotPresent# 污点容忍tolerations:# 容忍所有effect值为NoSchedule的污点- effect: NoScheduleoperator: Exists# 容忍污点key值CriticaAddonsOnly存在- key: CriticaAddonsOnlyoperator: Exists# 容忍所有effect值为NoExecute的污点- effect: NoExecuteoperator: Exists

基于污点的驱逐

参考: 官方文档

kubelet 驱逐策略详解

污点的 effect 值 NoExecute会影响(驱逐)已经在节点上运行的 Pod,如果Pod没有配置容忍 effect 值为 NoExecute 的污点,会被立即驱逐.

Pod配置了容忍NoExecute,但在容忍度定义中没有指定 tolerationSeconds(宽限期),则 Pod 还会一直在这个节点上运行。

Pod配置了容忍NoExecute,,而且指定了 tolerationSeconds(宽限期), 则 Pod 还能在这个节点上继续运行这个指定的时间长度。

节点故障时,节点控制器会自动给节点添加一个(内置)污点.如果异常状态恢复正常,kubelet 或节点控制器能够移除相关的污点。


驱逐时排除指定服务

# 说明:此命令将驱逐节点上运行的pod服务
## --ignore-daemonsets  驱逐的时候排除daemonset类型服务
[root@wps]# kubectl drain 10.226.xxx.xxx --ignore-daemonsets

设置master调度


设置master尽量不调度

尽量不调度的污点PreferNoSchedule;
禁止调度并驱逐的污点NoExecute

# master添加 尽量不调度 PreferNoSchedule 
kubectl taint nodes k8s-master02 node-role.kubernetes.io/master:PreferNoSchedule

允许master节点调度pod

# 去除污点NoSchedule,最后一个"-"代表删除污点# 允许所有master节点调度pod
kubectl taint nodes --all node-role.kubernetes.io/master-# 允许master2节点调度pod;
kubectl taint nodes k8s-master02 node-role.kubernetes.io/master:NoSchedule-

恢复Master Only状态

参考: https://cloud.tencent.com/developer/article/1788356

# 指定master1为Only状态(加污点,不允许pod调度)
kubectl taint node maser1 node-role.kubernetes.io/master="":NoSchedule

将node标记为不可调度状态(节点警戒)

# 将node标记为不可调度状态(节点警戒)
kubectl cordon node名

设置node不可用并驱逐节点上的所有pod(腾空节点)

当节点磁盘空间不足时,Pod被驱逐的顺序为: BestEffort先于 Burstable

# 切换到名为ek8s的集群
kubectl config use-context ek8s# 查看node状态
kubectl get nodes# 设置节点不可用并驱逐节点上的所有pod(腾空节点)
## 节点排水(驱逐节点上的所有pod)
## 忽略节点上不能杀死的特定系统Pod,例如:CNI插件,daemonSet
## --delete-local-data 清空本地数据
## --ignore-daemonsets 忽略daemonsets错误
## --force 强制执行
kubectl drain ek8s-node-1 --ignore-daemonsets --force # 考试执行
## 如果报错,加--delete-local-data 清空本地数据
kubectl drain ek8s-node-1 --delete-local-data --ignore-daemonsets --force # 练习执行# 查看node状态
kubectl get nodes# 查看污点
kubectl describe nodes node名 |grep Taints
# Taints:   node.kubernetes.io/unreachable:NoSchedule

设置node为可用

# 标记my-node 节点为可以调度
kubectl uncordon node名# 取消污点
## 如果已存在具有指定键和效果的污点,则替换其值为指定值。
kubectl taint nodes node名 dedicated=special-user:NoSchedule# 去除污点NoSchedule,最后一个"-"代表删除
kubectl taint nodes node名 node-role.kubernetes.io/master:NoSchedule-# 查看污点是否去除
kubectl describe nodes node名 |grep Taints

http://www.dtcms.com/wzjs/104872.html

相关文章:

  • 做移动网站快速排免费收录网站提交
  • 建设一个招聘网站百度资源分享网页
  • 政府网站html5域名访问网站
  • 做网站沈阳本地seo优化sem推广
  • 网站改版中中国站长之家网站
  • 青岛网站排名百度竞价推广登录入口
  • asp.netmvc 做网站线上引流线下推广方案
  • 承德网站建设步骤产品营销策划
  • 门户网站 方案企业网站的推广方法有哪些
  • 如何做网站首页图seo与sem的区别和联系
  • 网站数据库清空2023最新15件重大新闻
  • 如何快速建立一个网站在百度上怎么发布信息
  • 3D特效做首页的网站简述在线推广网站的方法
  • 东莞想做网站湖南平台网站建设设计
  • 视频网站开发公司网站流量统计软件
  • wordpress需要登录密码百度seo搜索引擎优化方案
  • 网站网络营销外包seo站长工具是什么
  • 两学一做的做题网站是多少产品推广介绍
  • 南通优化网站费用公众号怎么推广
  • 摩洛哥网站后缀谷歌seo搜索引擎
  • 设计品牌网站seo基本步骤
  • 网站建设需要知道什么软件百度普通版下载
  • 信息无障碍 网站建设今日新闻国际头条新闻
  • 境外网站开发专业网站制作网站公司
  • 上海做网站的公司联系方式网课免费平台
  • 如何做网站认证推广seo公司
  • javaee与网站建设google登录
  • 网站日志分析怎么做网络营销方案的制定
  • 企业网站的主要功能河北百度seo
  • 文联网站建设方案网站测试的内容有哪些