• DevOps
  • 执行流水线后,Kubesphere判断记录在Jenkins上不存在,进而删除了执行记录,但实际上Jenkins上是有历史记录的

这个环境,现在有几个 jenkins

kubectl get pod -A | grep jenkins 看下

    Kanade 这个现象,感觉是 devops-controller 没有连上 jenkins 。

    重启下 devops-controller(deployment,scale 到 0,再 scale 到 1)
    然后看下 有什么最新的 日志吗 devops-controller 的 pod 里,报错相关的。

      chilianyi 是升级Kubesphere后发生的,我把Kubesphere从3.3.1升级到了3.3.2,我没主动替换过某个image

        Kanade 出问题的 流水线,里面配置了 自动清理策略吗

        构建记录最大数量是几天。

          chilianyi 有的配置,有的没有,不过都存在问题,大多没配置

          chilianyi 反复构建取消,或者依赖容器比较大,jenkins初始化慢的时候,更容易出现这种现象

          看下 这种 job 里有对应日志吗。 这个 job 是 根据配置的流水线记录天数和数量,做自动清理动作的。看下是不是被自动清理掉了,导致页面看不到了

            chilianyi

            只有这么多日志,三个job基本一样,我的两个流水线一个配了7天10条限制,另一个无限制,上面那个连续执行18次的就是配置了7天10条的

            应该被 devops controller 给删掉了。

            devops controller 向 jenkins 中触发构建,获得 id,然后再用这个 id 去 jenkins 中查详情时,没有查到,就报错,然后触发了删除动作。

              chilianyi jenkins面板是能看到记录的,即便在Kubesphere删除之后,莫非是Kubesphere查的时候,Jenkins还没创建好记录……

              会不会和3.3.2的记录同步更新有关系

                Kanade 看你提供的这个截图,trigger 和 not exist in jenkins,delete it 相差只有几 ms。

                trigger 的时候,会触发生成一个 jenkins 的构建记录,并获取到 id
                然后再去 jenkins 中查这个 id,返回不存在,这个时间 很短,几 ms,然后触发了 delete。
                jenkins 里还能看到,只是 devops 流水线里把记录删掉了。

                  chilianyi 那要解决这个问题,是不是只能退回旧版本了,这算是个bug吗?

                    Kanade 针对这个问题,构建了一个临时镜像,麻烦更新下镜像验证下;
                    更新 devops-controller 镜像的命令:

                    kubectl patch cc ks-installer -n kubesphere-system –type=json –patch ‘[{“op”: “replace”, “path”: “/spec/ks_devops_controller/repo”, “value”: “jackwithdocker/devops-controller”}, {“op”: “replace”, “path”: “/spec/ks_devops_controller/tag”, “value”: “ks-v3.3.2-patch”}]’

                    kubectl patch deployment devops-controller -n kubesphere-devops-system –patch ‘{“spec”: {“template”: {“spec”: {“containers”: [{“name”: “ks-devops”,“image”: “jackwithdocker/devops-controller:ks-v3.3.2-patch”}]}}}}’

                      yudong 第一条命令返回The request is invalid,第二条命令成功更换了镜像,我试了试,没在出现删除记录的情况

                        Kanade 第一条命令报这个错误是由于之前没有执行过 patch,可以把第一条命令换成这个:

                        kubectl patch cc ks-installer -n kubesphere-system –type=json –patch ‘[{“op”: “add”, “path”: “/spec/ks_devops_controller”, “value”: {“repo”: “jackwithdocker/devops-controller”, “tag”: “ks-v3.3.2-patch”}}]’