首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么库伯内特斯吊舱在极限重叠时会随机失败?

为什么库伯内特斯吊舱在极限重叠时会随机失败?
EN

Stack Overflow用户
提问于 2020-02-11 10:28:42
回答 1查看 471关注 0票数 0

我有一个单节点Kubernetes集群,它显示10Gi,3个CPU可用(总共16个Gi,4个CPU)运行豆荚后集群启动。因此,我正在尝试两种不同的方案:

代码语言:javascript
复制
Scenario-1. 
   Running 3 pods individually with configs(Request,Limit) as: 
   Pod-A: (1 Gi,3.3Gi) and (1 cpu,1 cpu)
   Pod-B: (1 Gi,3.3Gi) and (1 cpu,1 cpu)
   Pod-C: (1 Gi,3.3Gi) and (1 cpu,1 cpu)

在这个场景中,应用程序在相应的吊舱中非常完美,运行良好。

代码语言:javascript
复制
Scenario-2. 
   Running 3 pods individually with configs(Request,Limit) as: 
   Pod-A: (1 Gi,10 Gi) and (1 cpu,3 cpu)
   Pod-B: (1 Gi,10 Gi) and (1 cpu,3 cpu)
   Pod-C: (1 Gi,10 Gi) and (1 cpu,3 cpu)

在第二种情况下,应用程序会出现在相应的吊舱中,但是在这些吊舱上放置了一些负载后,即某个时间Pod-A下降,有时是Pod-2或Pod-3时,应用程序就会随机失败。在任何时候,我都不能把这三个吊舱都放在一起。

我在失败的吊舱中看到的唯一事件如下所示

"The warning which is available in node logs says "Warning CheckLimitsForResolvConf 1m (x32 over 15m) kubelet, xxx.net Resolv.conf file '/etc/resolv.conf' contains search line consisting of more than 3 domains**!.**".

由于日志中只有这些信息,我无法找出Pods随机故障的实际原因。

有没有人能帮我了解一下,如果我的吐露有什么问题,或者还有什么东西是我遗漏的?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-02-11 10:49:26

创建Pod时,Kubernetes调度程序会为Pod选择要运行的节点。每个节点对于每种资源类型都有最大的容量:它可以为Pods提供的CPU和内存量。调度器确保,对于每种资源类型,调度容器的资源请求之和小于节点的容量。

Note虽然节点上的实际内存或CPU资源使用率很低,但如果容量检查失败,调度程序仍然拒绝在节点上放置Pod。这可以防止当资源使用增加时,例如在请求速率的日峰值期间,节点上的资源短缺。

因此,在调度容器超过其内存请求后,当节点耗尽内存时,很可能会将其Pod逐出

请参考默认硬驱逐阈值

kubelet具有以下默认的硬驱逐阈值:

代码语言:javascript
复制
memory.available<100Mi
nodefs.available<10%
nodefs.inodesFree<5%
imagefs.available<15%

当load运行时,您应该跟踪您的节点条件

kubelet将一个或多个驱逐信号映射到相应的节点条件。

如果已达到硬驱逐阈值,或软驱逐阈值已达到独立于其相关宽限期的程度,kubelet报告了反映节点处于压力之下的条件,即MemoryPressureDiskPressure

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60166802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档