Kubernetes 中 Pod 调度全解析
1. 调度问题与解决方案
在容器化应用的部署中,常常存在容器之间的依赖关系,为了减少网络延迟,需要将这些容器部署在同一节点上。Kubernetes 中的 Pod 抽象可以封装多个容器,解决了容器间依赖的共置问题。并且,这种模式还可以进一步扩展到 Pod 之间的依赖,使它们运行在相同或不同的节点上。
在相关的设计模式中,主要有以下三种容器设计模式:
1. 单容器管理模式
2. 单节点多容器应用模式
3. 多节点应用模式
这些设计模式都要求将 Pod 调度到集群中的特定节点上,Kubernetes 为此提供了多种调度选项。Pod 调度到节点的顺序如下:
graph LR
A[找到需要运行的 Pod] --> B[找到适合运行 Pod 的节点]
B --> C[将 Pod 调度到该节点]
2. 定义调度策略
调度由调度策略决定,该策略涉及谓词(Predicates)和优先级函数(Priority Functions)。调度过程如下:
1. 使用过滤策略谓词过滤掉不适合的节点,目的是排除那些不满足 Pod 特定要求的节点。
2. 使用优先级函数对剩余节点进行排名。
3. 将 Pod 调度到优先级最高的节点上。如果多个节点优先级相同,则随机选择一个节点。
以下是一些实现过滤策略的重要谓词:
| 谓词 | 描述 |
| — | — |
| NoDiskConflict
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



