Kubernetes学习笔记(1):Allocatable资源
来源:互联网 发布:淘宝代评职称是真的吗 编辑:程序博客网 时间:2024/05/28 17:06
什么是Allocatable?
目前Allocatable实现的问题
在Kebernetes的结点状态(NodeStatus)中有个属性Capacity,它统计结点的资源(比如CPU、内存)的总容量。结点中的部分资源可能预留给Kubernetes的部件(Kube-Reserved)或者其他部件使用(System-Reserved)。从资源总容量里减去这些预留的资源就是可分配的资源。这些可分配的资源就是结点状态中的Allocatable属性。
如果在结点上部署一个或者多个容器,尽管在结点中剩下的真正可供分配给容器的资源减少了,但Allocatable属性的值并不会减少。这可能和我们最初的预计并不一致。
在Kebernetes版本1.6中,所有Windows结点的Allocatable的CPU和内存都是0。
如果我们在部署Windows容器时没有成功,就有可能是由这个Allocatable属性的问题造成的。Kubernetes在选择结点部署容器的时候会根据结点可分配资源的多少来决定结点能否部署更多的容器。相应的代码如下(https://github.com/kubernetes/kubernetes/blob/master/plugin/pkg/scheduler/algorithm/predicates/predicates.go):
allocatable := nodeInfo.AllocatableResource()if allocatable.MilliCPU < podRequest.MilliCPU+nodeInfo.RequestedResource().MilliCPU { predicateFails = append(predicateFails, NewInsufficientResourceError(v1.ResourceCPU, podRequest.MilliCPU, nodeInfo.RequestedResource().MilliCPU, allocatable.MilliCPU))}if allocatable.Memory < podRequest.Memory+nodeInfo.RequestedResource().Memory { predicateFails = append(predicateFails, NewInsufficientResourceError(v1.ResourceMemory, podRequest.Memory, nodeInfo.RequestedResource().Memory, allocatable.Memory))}
上述代码中allocatable就是结点状态中Allocatable属性,podRequest是待部署容器所需要的资源,而nodeInfo.RequestResource是结点上已经部署的所有容器需要的资源的总和。只有结点剩余足够多的资源才能部署新的容器。
由于Windows结点的Allocatable属性始终是0,这导致如果我们在配置容器资源需求(容器部署设置中Resources属性中的Requests属性)时不能要求Kubernetes给容器分配定额的资源,否则会导致Kubernetes找不到满足条件的结点来部署容器。
- Kubernetes学习笔记(1):Allocatable资源
- Kubernetes学习笔记(2):与资源相关的调度
- Kubernetes 学习笔记1
- Kubernetes(k8s)学习笔记1
- Kubernetes学习笔记(一)
- Kubernetes学习笔记(二):网络原理
- Kubernetes安装部署学习笔记(一)
- Kubernetes安装部署学习笔记(二)
- Kubernetes权威指南学习笔记(一)
- Kubernetes学习笔记---安装
- Kubernetes学习笔记---常用命令
- Kubernetes 学习笔记2
- Kubernetes学习笔记---常用命令
- kubernetes学习记录(1)——kubernetes初理解
- Kubernetes学习总结(1)——Kubernetes入门简介
- 学习笔记TF064:TensorFlow Kubernetes
- kubernetes学习笔记------kubectl: command not found
- kubernetes学习笔记----- Go语言中structTag
- MySQL分区按日期
- Gradle实现多渠道OEM打包
- Java数据结构Collection、Set,List,Map
- Java中的多线程你只要看这一篇就够了
- CentOS6.5升级git
- Kubernetes学习笔记(1):Allocatable资源
- c++ 数制转换 一个十进制的数变十几进制的和几进制的数
- 机器学习中的数据清洗与特征处理综述
- 如何连接Rancher与阿里云NAS存储
- 安卓刷量技术揭秘(一) 工具篇
- Hacker, pack your bags! Codeforces Round #422 (Div. 2) (贪心)
- 浪淘沙第八首·刘禹锡
- 八种排序算法
- spring mvc 配置