add scheduling

pull/148/merge
rootsongjc 2018-03-12 17:45:32 +08:00
parent 4f04f5031b
commit cc92231b2b
2 changed files with 18 additions and 4 deletions

View File

@ -20,6 +20,7 @@
- [CRI - Container Runtime Interface容器运行时接口](concepts/cri.md)
- [CNI - Container Network Interface容器网络接口](concepts/cni.md)
- [CSI - Container Storage Interface容器存储接口](concepts/csi.md)
- [Kubernetes中的网络]()
- [Kubernetes中的网络解析——以flannel为例](concepts/networking.md)
- [Kubernetes中的网络解析——以calico为例](concepts/calico.md)
- [资源对象与基本概念解析](concepts/objects.md)
@ -32,7 +33,7 @@
- [Pod Hook](concepts/pod-hook.md)
- [Pod Preset](concepts/pod-preset.md)
- [Pod中断与PDBPod中断预算](concepts/pod-disruption-budget.md)
- [集群配置](concepts/cluster.md)
- [集群资源管理](concepts/cluster.md)
- [Node](concepts/node.md)
- [Namespace](concepts/namespace.md)
- [Label](concepts/label.md)
@ -63,10 +64,11 @@
- [Volume](concepts/volume.md)
- [Persistent Volume持久化卷](concepts/persistent-volume.md)
- [Storage Class](concepts/storageclass.md)
- [扩展](concepts/extension.md)
- [集群扩展](concepts/extension.md)
- [使用自定义资源扩展API](concepts/custom-resource.md)
- [Aggregated API Server](concepts/aggregated-api-server.md)
- [APIService](concepts/apiservice.md)
- [资源调度](concepts/scheduling.md)
### 用户指南

View File

@ -0,0 +1,12 @@
# 资源调度
Kubernetes作为一个容器编排调度引擎资源调度是它的最基本也是最重要的功能这一节中我们将着重讲解Kubernetes中是如何做资源调度的。
Kubernetes中有一个叫做`kube-scheduler`的组件,该组件就是专门监听`kube-apiserver`中是否有还未调度到node上的pod再通过特定的算法为pod指定分派node运行。
Kubernetes中的众多资源类型例如Deployment、DaemonSet、StatefulSet等都已经定义了Pod运行的一些默认调度策略但是如果我们细心的根据node或者pod的不同属性分别为它们打上标签之后我们将发现Kubernetes中的高级调度策略是多么强大。当然如果要实现动态的资源调度即pod已经调度到某些节点上后因为一些其它原因想要让pod重新调度到其它节点。
考虑以下两种情况:
- 集群中有新增节点想要让集群中的节点的资源利用率比较均衡一些想要将一些高负载的节点上的pod驱逐到新增节点上这是kuberentes的scheduer所不支持的需要使用如[rescheduler](https://github.com/kubernetes-incubator/descheduler)这样的插件来实现。
- 想要运行一些大数据应用设计到资源分片pod需要与数据分布达到一致均衡避免个别节点处理大量数据而其它节点闲置导致整个作业延迟这时候可以考虑使用[kube-arbitritor](https://github.com/kubernetes-incubator/kube-arbitrator)。