【Kubernetes】常见面试题汇总(三十二)
目录
84.简述 k8s 的调度机制。
特别说明:
题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。
题目 69-113 属于【Kubernetes】的生产应用题。
84.简述 k8s 的调度机制。
1、Scheduler 工作原理:
请求及 Scheduler 调度步骤:
① 节点预选(Predicate):排除完全不满足条件的节点,如内存大小,端口等条件不满足。
② 节点优先级排序(Priority):根据优先级选出最佳节点。
③ 节点择优(Select):根据优先级选定节点。
2、具体步骤:
① 首先用户通过 Kubernetes 客户端 Kubectl 提交创建 Pod 的 Yaml 的文件,向 Kubernetes 系统发起资源请求,该资源请求被提交到 Kubernetes 系统中,用户通过命令行工具 Kubectl 向 Kubernetes 集群即 APlServer 用的方式发送 “ POST ” 请求,即创建 Pod 的请求。
② APIServer 接收到请求后把创建 Pod 的信息存储到 Etcd 中,从集群运行那一刻起资源调度系统 Scheduler 就会定时去监控 APIServer。
③ 通过 APIServer 得到创建 Pod 的信息,Scheduler 采用 watch 机制,一旦 Etcd 存储 Pod 信息成功便会立即通知 APIServer,APIServer 会立即把 Pod 创建的消息通知 Scheduler,Scheduler发现 Pod 的属性中 Dest Node 为空时(Dest Node=“ ”)便会立即触发调度流程进行调度。
④ 而这一个创建 Pod 对象,在调度的过程当中有 3 个阶段:节点预选、节点优选、节点选定,从而筛选出最佳的节点。
- 节点预选:基于一系列的预选规则对每个节点进行检查,将那些不符合条件的节点过滤,从而完成节点的预选。
- 节点优选:对预选出的节点进行优先级排序,以便选出最合适运行 Pod 对象的节点。
- 节点选定:从优先级排序结果中挑选出优先级最高的节点运行 Pod,当这类节点多于 1 个时,则进行随机选择。
3、k8s 的调用工作方式:
Kubernetes 调度器作为集群的大脑,在如何提高集群的资源利用率、保证集群中服务的稳定运行中也会变得越来越重要 Kubernetes 的资源分为两种属性。
① 可压缩资源:
例如 CPU 循环,Disk I/O 带宽;都是可以被限制和被回收的,对于一个 Pod 来说可以降低这些资源的使用量而不去杀掉 Pod。
② 不可压缩资源:
例如内存、硬盘空间;一般来说不杀掉 Pod 就没法回收。未来 Kubernetes 会加入更多资源,如网络带宽,存储 IOPS 的支持。
“【Kubernetes】常见面试题汇总” 系列文章,可点击链接查看专栏详情:K8s 面试题汇总