在 Kubernetes 上调试 colissionCount
Debugging colissionCount on Kubernetes
我在 Openshift 中有一个 StatefulSet 不断重启,但只在一个节点上。我在 PODs 日志中没有看到任何内容。在 /var/log/message
s 中,我只看到容器正在重启、卷已卸载等消息,还有一些更神秘的 'error: Container is already stopped'
和 'cleanup: failed to unmount secrets: invalid argument'
.
但是,当我查看 StatefulSet 的 Yaml 时,我看到以下内容:
status:
collisionCount: 1
currentReplicas: 1
我想这才是真正的原因。
但是我怎样才能找出是什么导致了碰撞呢?
您是否尝试 kubectl describe pod
查找事件?
StatefulSets
通过 ControllerRevisions
和 generate a hash for each version 在内部执行数据快照。
collisionCount
表示 ControllerRevision
哈希冲突,可能是由于 implementation issue.
您可以尝试通过获取控制器修订来排除此问题:
$ kubectl get controllerrevisions
由于这是对象中的一种内部机制,因此除了重新创建对象以生成不会冲突的新散列外,几乎没有什么可做的。有一个 merged PR that suggests that newer versions shouldn't face this issue. However, it might be the case 你是 运行 没有这个补丁的版本。
我在 Openshift 中有一个 StatefulSet 不断重启,但只在一个节点上。我在 PODs 日志中没有看到任何内容。在 /var/log/message
s 中,我只看到容器正在重启、卷已卸载等消息,还有一些更神秘的 'error: Container is already stopped'
和 'cleanup: failed to unmount secrets: invalid argument'
.
但是,当我查看 StatefulSet 的 Yaml 时,我看到以下内容:
status:
collisionCount: 1
currentReplicas: 1
我想这才是真正的原因。
但是我怎样才能找出是什么导致了碰撞呢?
您是否尝试 kubectl describe pod
查找事件?
StatefulSets
通过 ControllerRevisions
和 generate a hash for each version 在内部执行数据快照。
collisionCount
表示 ControllerRevision
哈希冲突,可能是由于 implementation issue.
您可以尝试通过获取控制器修订来排除此问题:
$ kubectl get controllerrevisions
由于这是对象中的一种内部机制,因此除了重新创建对象以生成不会冲突的新散列外,几乎没有什么可做的。有一个 merged PR that suggests that newer versions shouldn't face this issue. However, it might be the case 你是 运行 没有这个补丁的版本。