发生了什么?
当Kubernetes中DaemonSet的更新策略设置为RollingUpdate,并且maxSurge
大于1时,我注意到一个问题,即如果节点的状态处于压力之下,系统会反复创建和驱逐Pods。这种行为产生了很多不必要的动荡,并可能导致系统资源出现问题。
你期望会发生什么?
像选项maxSurge
为0时的行为
我们如何尽可能精确地重现它?
制造磁盘压力,然后部署这个
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: nginx-daemonset
spec:
selector:
matchLabels:
name: nginx
template:
metadata:
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
updateStrategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
我们需要了解其他信息吗?
实际上,我已经找到了问题所在。
当maxSurge == 1
时,这些代码运行得很好。因为我们遇到了这个问题,然后直接返回。
但是当maxSurge > 1
时,它通过了那个检查点,然后遇到了这个问题。糟糕的是,它导致节点被添加到了nodesNeedingDaemonPods
中。
也许当我们是inBackoff
时,我们应该直接中断?
Kubernetes版本
主版本
云提供商
无
操作系统版本
- 无响应*
5条答案
按热度按时间hts6caw31#
这个问题目前正在等待分类。
如果SIG或子项目确定这是一个相关的问题,他们将通过应用
triage/accepted
标签并提供进一步的指导来接受它。组织成员可以通过在评论中写入
/triage accepted
来添加triage/accepted
标签。有关使用PR评论与我互动的说明,请查看here。如果您对我的行为有任何问题或建议,请针对kubernetes/test-infra仓库提出一个问题。
ukdjmx9f2#
/sig scheduling
mbjcgjjk3#
rur96b6h4#
/remove-sig node
/sig apps
fcipmucu5#
Kubernetes项目目前缺乏足够的贡献者来充分应对所有问题。
此机器人根据以下规则对未分类的问题进行分级处理:
lifecycle/stale
应用后的90天内无活动,将应用lifecycle/stale
lifecycle/stale
应用后的30天内无活动,将应用lifecycle/rotten
lifecycle/rotten
应用后的30天内无活动,将关闭该问题您可以:
/remove-lifecycle stale
标记此问题为新鲜/close
关闭此问题请将反馈发送至sig-contributor-experience@kubernetes/community。
/lifecycle stale