• DevOps
  • 执行流水线后,Kubesphere判断记录在Jenkins上不存在,进而删除了执行记录,但实际上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”}}]’

                        yudong 非常给力,问题没再出现

                        不过感觉Jenkins还是有点经不住折腾,我这里出现了一个删不掉的文件夹,在Jenkins面板上删除也会报错,应该不是Kubesphere的问题。

                        另外请教个旁的事,把流水线运行结果存在ConfigMap里是出于什么考虑呢?感觉这样集群配置字典里的东西会越积越多

                          Kanade 运行结果存到 ConfigMap 是因为有些流水线 step 结果数据量比较大,存 Annotation 里超出了 k8s 的限制;一个 Pipelinerun 存一个 ConfigMap,清理 Pipelinerun 的时也会同步清理掉对应的 ConfigMap;