kubesphere整合jenkins升级方法 |
发表者:admin分类:云计算容器2022-01-10 12:22:20 阅读[1025] |
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,如下图:
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.micoder.cc》
虚拟化云计算,系统运维,安全技术服务.
Tags: | [阅读全文...] |
最新评论