And*_*gan 5 docker google-cloud-platform kubernetes google-kubernetes-engine
在GKE上创建集群时,可以创建自定义实例类型。向Kubernetes 添加8GB
内存时n1-standard-1
仅显示可分配的内存6.37GB
。为什么是这样?
请求的内存包括kube-system
名称空间中的所有Pod,那么这些额外的内存在哪里?
来自文档的报价:
节点可分配资源
请注意,运行Kubernetes引擎需要节点的一些资源,而使该节点作为集群的一部分所必需的Kubernetes资源。这样,您可能会注意到节点的总资源(在机器类型文档中指定)与Kubernetes Engine中节点的可分配资源之间存在差异
注意:由于较大的机器类型倾向于运行更多的容器(并扩展为Kubernetes容器),因此Kubernetes Engine为群集进程保留的资源量会随着较大的机器而增加。
注意:在1.7.6之前的Kubernetes Engine节点版本中,保留资源未计入节点的总可分配资源。如果您的节点最近升级到版本1.7.6,则它们似乎可用资源较少,因为Kubernetes Engine现在显示可分配的资源。这可能会导致集群的节点出现过量使用的情况,因此您可能需要调整集群的大小。
例如,执行一些测试,您可以仔细检查:
Machine type Memory(GB) Allocatable(GB) CPU(cores) Allocatable(cores)
g1-small 1.7 1.2 0.5 0.47
n1-standard-1 (default) 3.75 2.7 1 0.94
n1-standard-2 7.5 5.7 2 1.93
n1-standard-4 15 12 4 3.92
n1-standard-8 30 26.6 8 7.91
n1-standard-16 60 54.7 16 15.89
Run Code Online (Sandbox Code Playgroud)
注意:列出的可分配资源的值不考虑kube系统pod使用的资源,其数量随每个Kubernetes版本而变化。这些系统Pod通常在每个节点上占用额外的400m CPU和400mi内存(值是近似值)。如果需要对每个节点上的可用资源进行准确的核算,建议您直接检查群集。
Kubernetes文档中还有关于为什么使用此资源的官方解释:
kube-reserved旨在为kubernetes系统后台驻留程序(如kubelet,容器运行时,节点问题检测器等)捕获资源预留。它并不旨在为作为Pod运行的系统后台驻留程序保留资源。保留kube通常是节点上容器密度的函数。此性能仪表板在多个Pod密度级别下显示kubelet和docker引擎的cpu和内存使用情况配置文件。这篇博客文章解释了如何解释仪表板以提出合适的kube保留预留。
如果您有兴趣了解更多信息,建议您浏览此页面。
归档时间: |
|
查看次数: |
511 次 |
最近记录: |