发生了什么?
当我尝试使用超过2个副本创建有状态集(例如如下所示)时,Pods创建之间的时间间隔是minReadySeconds
中配置的值的两倍。
# k get po
NAME READY STATUS RESTARTS AGE
sts-0 1/1 Running 0 24s
sts-1 1/1 Running 0 4s
从结果中可以看出,这两个pods创建之间的时间间隔为(24s-4s)= 20s,但实际上spec.minReadySeconds
是10而不是20。
根据IUR,这两个pods创建之间的时间间隔等于spec.minReadySeconds
。
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: sts
spec:
serviceName: "nginx"
replicas: 2
minReadySeconds: 10
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
期望发生什么?
这两个pods创建之间的时间间隔等于spec.minReadySeconds
。
如何尽可能精确地重现它?
yaml如上所述。
还需要了解其他信息吗?
- 无响应*
Kubernetes版本
$ kubectl version
# paste output here
Kubernetes v1.26.3
云提供商
OS版本
# On Linux:
$ cat /etc/os-release
# paste output here
$ uname -a
# paste output here
# On Windows:
C:\> wmic os get Caption, Version, BuildNumber, OSArchitecture
# paste output here
7条答案
按热度按时间iyzzxitl1#
/sig apps
z4bn682m2#
根据您提供的文本内容,问题可能与在重新平衡StatefulSet时,状态集控制器引用(curControllerRef)被更新了两次有关。具体来说,当Pod更新时,如果其对象元数据(ObjectMeta)发生变化,将触发重新排队并更新状态集的状态。
以下是相关代码片段:
以及:
这意味着在调用
enqueueSSAfter
之后的第二次,工作队列事件将更新(延迟时间加倍)。qzlgjiam3#
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
6g8kf2rb4#
Kubernetes项目目前缺乏足够的活跃贡献者来充分应对所有问题。
此机器人根据以下规则对未分类的问题进行分级处理:
lifecycle/stale
应用后的90天内无活动,将应用lifecycle/stale
lifecycle/stale
应用后的30天内无活动,将应用lifecycle/rotten
lifecycle/rotten
应用后的30天内无活动,将关闭该问题您可以:
/remove-lifecycle rotten
标记此问题为新鲜/close
关闭此问题请将反馈发送至sig-contributor-experience@kubernetes/community。
/lifecycle rotten
lskq00tm5#
与#108266(评论)类似的问题。
qyuhtwio6#
dwbf0jvd7#
/remove-lifecycle rotten