首页 > 其他分享 >Kubernets 调度常用的命令-马哥教育

Kubernets 调度常用的命令-马哥教育

时间:2023-06-16 09:11:40浏览次数:42  
标签:kubectl 马哥 Kubernets 调度 master Pod k8s 节点

taints 内容包括 key、value、effect:

key 就是配置的键值
value 就是内容
effect 是标记了这个 taints 行为是什么
目前 Kubernetes 里面有三个 taints 行为:

NoSchedule 禁止新的 Pod 调度上来
PreferNoSchedul 尽量不调度到这台

k8s的master节点本身就带有effect类型为NoSchedule的污点,这也是为什么k8s在调度Pod时,不会调度到master节点的原因,具体查看如下:(Kubeadm在安装初始化init的时候给master打上了污点,其余节点是没有该污点的。Master节点主要任务是管理集群的,不应该跑具体的业务应用。所以不允许pod落在master节点)

[root@k8s-master ~]# kubectl describe node k8s-master
Taints: node-role.kubernetes.io/master:NoSchedule
kubectl taint nodes k8s-master node-role.kubernetes.io/master=:NoSchedule

注意⚠️ : 为master设置的这个taint中, node-role.kubernetes.io/masterkeyvalue为空, effectNoSchedule

 

驱逐节点是一种有损操作,驱逐的原理 :
  1. 封锁节点 (设为不可调度,避免新的 Pod 调度上来)。
  2. 将该节点上的 Pod 删除。
  3. ReplicaSet 控制器检测到 Pod 减少,会重新创建一个 Pod,调度到新的节点上。

设置节点不可以调度

[root@k8s-master ~]# kubectl cordon k8s-node1
[root@k8s-master ~]# kubectl describe node k8s-node1
node.kubernetes.io/unschedulable:NoSchedule

设置将节点上pod驱逐

# kubectl drain node2 --force --ignore-daemonsets

kubectl drain操作会将相应节点上的旧Pod删除,并在可调度节点上面起一个对应的Pod。当旧Pod没有被正常删除的情况下,新Pod不会起来。

例如:旧Pod一直处于Terminating状态。

对应的解决方式是通过重启相应节点的kubelet,或者强制删除该Pod。

# 重启发生`Terminating`节点的kubelet
systemctl restart kubelet
# 强制删除`Terminating`状态的Pod
kubectl delete pod <PodName> --namespace=<Namespace> --force --grace-period=0

#节点恢复正常后, 设置节点为可调度

kubectl uncordon k8s-node1

 

标签:kubectl,马哥,Kubernets,调度,master,Pod,k8s,节点
From: https://www.cnblogs.com/vzhangxk/p/17484718.html

相关文章

  • 621. 任务调度器
    难度中等1159给你一个用字符数组 tasks 表示的CPU需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在1个单位时间内执行完。在任何一个单位时间,CPU可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的......
  • 力扣上任务调度相关的算法
    目录应用应用1:Leetcode1834.单线程CPU题目分析代码实现应用2:Leetcode621.任务调度器题目分析代码实现应用应用1:Leetcode1834.单线程CPU题目1834.单线程CPU给你一个二维数组tasks,用于表示n项从0到n-1编号的任务。其中\(tasks[i]=[enqueueTime_i,proc......
  • Oracle-任务调度(DBMS_Scheduler)
    Dbms_SchedulerOracle10g之前,可以使用dbms_job来管理定时任务:dbms_job.submit(job=>outjob,what=>'pro_name;',next_date=>sysdate,inteval=>'sysdate+1/24');10g之后,Oracle引入了dbms_scheduler和program,在功能方面,它比dbms_job提供了更强大的功能和灵活的机制/管理......
  • 进程调度
    进程调度进程调度分为抢占式调度和非抢占式调度非抢占式调度抢占式调度指进程不会因为时钟中断或其它任何原因区抢占当前正在运行进程的处理机,只有当该进程被阻塞时,处理机才会被分配给其它进程,导致非抢占式进程调度的原因有:进程执行完毕进程因为IO等阻塞进程通信或同步......
  • Python使用Redis实现一个简单作业调度系统
        概述Redis作为内存数据库的一个典型代表,已经在很多应用场景中被使用,这里仅就Redis的pub/sub功能来说说怎样通过此功能来实现一个简单的作业调度系统。这里只是想展现一个简单的想法,所以还是有很多需要考虑的东西没有包括在这个例子中,比如错误处理,持久化等。下面是实现上......
  • Python使用multiprocessing实现一个最简单的分布式作业调度系统
    介绍Python的multiprocessing模块不但支持多进程,其中managers子模块还支持把多进程分布到多台机器上。一个服务进程可以作为调度者,将任务分布到其他多个机器的多个进程中,依靠网络通信。想到这,就在想是不是可以使用此模块来实现一个简单的作业调度系统。实现Job首先创建一个Job类,为......
  • 处理机典型调度算法
    日志返回日志列表处理机典型调度算法 编辑于 2023-2-1008:56 阅读(0)赞评论转载分享复制地址编辑上一篇 | 下一篇:元,角,分,厘,... 开通黄钻处理机典型调度算法 处理机典型调度算法 1.先来先服务算法作业调度、进程调度先来的......
  • 常用调度算法 总结
    常用调度算法总结 常用调度算法总结 1常见的批处理作业调度算法 1.1先来先服务调度算法(FCFS): 就是按照各个作业进入系统的自然次序来调度作业。这种调度算法的优点是实现简单,公平。其缺点是没有考虑到系统中各种资源的综合使用情况,往往使短作业的用户不满......
  • (进程管理)05.进程的调度算法
    (进程管理)05.进程的调度算法 进程调度,就是绪状态的进程获得CPU的使用权,进程由就绪状态转变成运行状态。进程调度可以分为:抢占式系统会根据进程的优先级高低来进行调度,进程之间可以插队非抢占式系统按照先来先服务的方式来调度,进程间不能插队进程调度算法有很多,......
  • 使用Python完美管理和调度你的多个任务
    本文要点:扩展库schedule的用法。安装方法:pipinstallschedule演示代码:运行效果:......