【问题标题】:Debugging colissionCount on Kubernetes在 Kubernetes 上调试 colissionCount
【发布时间】:2019-09-04 11:21:51
【问题描述】:

我在 Openshift 中有一个 StatefulSet,它会不断重启,但只在单个节点上。我在 POD 日志中看不到任何内容。在/var/log/messages 中,我只看到容器正在重新启动、卷已卸载等消息以及一些更神秘的'error: Container is already stopped''cleanup: failed to unmount secrets: invalid argument'

但是,当我查看 StatefulSet 的 Yaml 时,我看到以下内容:

status:
  collisionCount: 1
  currentReplicas: 1

我想这才是真正的原因。
但是我怎样才能找出是什么导致了这种碰撞呢?

【问题讨论】:

    标签: kubernetes openshift kubernetes-statefulset


    【解决方案1】:

    StatefulSets 在内部通过ControllerRevisionsgenerate a hash for each version 执行数据快照。

    collisionCount 表示ControllerRevision 哈希冲突,可能是由于implementation issue

    您可以尝试通过获取控制器版本来排除这种情况:

    $ kubectl get controllerrevisions

    由于这是对象的内部机制,除了重新创建对象以生成不会发生冲突的新哈希值外,几乎没有什么可做的。有一个merged PR 表明较新的版本不应该面临这个问题。但是,it might be the case 您正在运行没有此补丁的版本。

    【讨论】:

    • 哦,好吧,我有 2 个 ControllerRevisions 用于同一个版本,当我删除一个时,StatefulSet 停止重新启动。这似乎是个问题。
    • 我的版本是 GitVersion:"v1.11.0+d4cacc0".
    【解决方案2】:

    您是否尝试kubectl describe pod 查找事件?

    【讨论】:

      猜你喜欢
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      • 2019-08-22
      • 2016-06-02
      • 2021-04-14
      相关资源
      最近更新 更多