记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。

kubesphere整合jenkins升级方法


一,kubesphere3.2中的devops组件无法工作。

1,kubeshpere整合了jenkins,只是版本相对低此,这前可能我这里升级了jenkins中的组件,导致jenkins容器启动不了。




2,查看相关容器日志信息,报错如下:



二,处理步骤。


1),第一种方法,找到devops-jenkins容器所挂载目录中,将报错的插件删除掉,然后重建容器。

2),第二种方法,直接升级jenkins的war包到新版,下面是第二种方法。

1,遇到这种坑,查看了devops-jenkins相关的pvc与pv信息,




2,由于kubesphere使用的kk工具安装的,因此使用是本地存储,工具软件为openebs,可以看到相关的pv挂载目录。



3,但是查看本机的存储目录与部署的YAML文件信息,Jenkins的war包目录位于/usr/share/jenkins/jenkins.war,此目录容器未挂载,

但是这个文件的子目录/usr/share/jenkins/ref/secrets却是挂载到pv了。因此如果把/usr/shar/jenkins目录挂载后,那么就是个空目录,

别的挂载就没法使用了。挂载Jenkins war目录升级的方法就不行了(当然要挂载的话,kubesphere只能使用子目录挂载的方法)。

4,经过查看  kubesphere/ks-jenkins:v3.2.0-2.249.1 镜像信息,找到了容器启动 jenkins的脚本文件存储目录

jenkins@17a640708a7c:/usr/local/bin$ ls
docker-java-home  install-plugins.sh  jenkins-support  jenkins.sh  plugins.sh

5,经过查看相关脚本,确认jenkins.sh是启动jenkins的脚本,那么我们只需要修改这个脚本就可以实现更换jenkins的目录,

将war包放到别的挂载目录就可以了。比如: /var/jenkins_home/jenkins.war ,实现上就是放到了pv的目录中。

6,创建 /usr/local/bin/jenkins.sh文件内容configmap,如下图:

击打开链接-jenkins.sh脚本内容





7,下载jenkins.war包到pv的挂载目录,本地存储使用的openebs,默认为/var/openebs/local,可以看到挂载目录中已经有很多的文件。

wget  https://mirrors.aliyun.com/jenkins/war/latest/jenkins.war,当然这个是最新版本的jenkins安装包,很可能无法正常运行,建议不要太新。



8,给devops-jenkins部署,挂载字典文件。下面是YAML中添加的内容,需要添加两部分,

第一部署:spec,明确相关configmap文件名称,第二部分:containers,表明容器挂载的信息注意有两个容器,不是initcontainers中添加,

具体如下面文件内容:

    spec:
      volumes:
        - name: jenkins-sh
          configMap:
            name: devops-jenkins-sh
            defaultMode: 509

======================

      containers:
        - name: devops-jenkins
          image: 'kubesphere/ks-jenkins:v3.2.0-2.249.1'
          volumeMounts:
            - name: jenkins-sh
              readOnly: true
              mountPath: /usr/local/bin/jenkins.sh
      subPath: jenkins.sh


查了一下容器中的jenkins.sh的脚本权限是 775,所以上面的defaultMode: 0775,775经过转换八进制后就是 509,

所以更新容器后再查YAMl文件就是成了 defaultMode: 509

9,当然也可以使用UI界面挂载configmap文件,只是这样操作名称是随机生成的,挂载文件/usr/local/bin/jenkins.sh后,要使用挂载子目录的方法,添加 jenkins.sh。

这样就不会影响/usr/local/bin/目录下的其它文件了。


10,保存修改后,等jenkins服务启动后,查看pod日志,可以看出 jenkins,的目录已经更新到/var/jenkins_home/jenkins.war,还有一个插件报错,后续可以更新升级。




三, 进行jenkins的登陆web地址,看看效果。

1,不要怕怕,登陆web后,显示的是新手入门画面。这个是正常的,可以根据情况,选自己的组件更新,也可以直接跳过。

2,这里就直接跳过,进行管理页面,还好,原来的东西都还在。

3),然后需要更新扫插件了,由于是容器日志中报错的插件。


4),如上图,需要更新依赖的插件 Bootstrap 5 API Plugin (5.1.1-1)。

找到可选插件,搜索 Bootstrap,找到对应的插件,安装后重启jenkins.






转载请标明出处【kubesphere整合jenkins升级方法】。

《www.92cto.com》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论