Jenkins安装部署
镜像选择
在DockerHub上选择1个相对较新的稳定镜像:https://hub.docker.com/r/jenkinszh/jenkins-k8s
本次搭建测试用的Jenkins,使用的镜像为jenkinszh/jenkins-k8s:2.239。
准备工作
- 在创建容器工作负载前,您需要购买一个可用集群(集群至少包含1个4核8G的节点,避免资源不足),详情请参照购买CCE集群创建。
- 若工作负载需要被外网访问,请确保集群中至少有一个节点已绑定弹性IP,或已购买负载均衡实例。
通过CCE安装部署Jenkins
- 在CCE控制台中,单击左侧栏目树中的“工作负载 > 无状态负载 Deployment”,单击右侧“创建无状态工作负载”按钮进入无状态工作负载创建页面。
- 在“工作负载基本信息”步骤中,工作负载名称使用:jenkins(可自定义),实例数量选择1个,单击“下一步:容器设置”。
- 在“容器设置”步骤中,单击“添加容器”。
- 在弹出的“选择镜像”窗口中单击“第三方镜像”页签,镜像名称填写:jenkinszh/jenkins-k8s:2.239,其他参数默认,如下图:图1 选择第三方镜像
- 单击“确定”返回“容器设置”步骤,在基本信息中配置资源规格,本例中CPU配额限制为:2 Core,内存配额限制为:2048 MiB,如下图:图2 设置容器规格
- 单击下方的“数据存储”展开,单击“云存储”页签后单击“添加云存储”按钮,在弹出的窗口中“云存储名称”处选择1个云存储卷(云硬盘EVS和文件存储SFS均可,若没有云存储可单击后方的链接创建),在挂载路径下输入/var/jenkins_home,将云存储挂载到Jenkins容器的/var/jenkins_home目录,供Jenkins保留持久化数据,如下图:图3 添加云存储
- 接下来给Jenkins容器添加权限,让Jenkins容器中可以执行docker命令,以便后续对接SWR。
- 开启“特权容器”开关。图4 开启特权容器
- 在“数据存储”中的“本地磁盘”页签下,单击“添加本地磁盘”,分别挂载主机的/var/run/docker.sock和/usr/bin/docker到容器对应路径,并挂载主机的/usr/lib64/libltdl.so.7到容器/usr/lib/x86_64-linux-gnu/libltdl.so.7。图5 挂载主机到容器对应路径
- 在“安全设置”中配置“运行用户”为:0(即root用户)。图6 配置运行用户
- 开启“特权容器”开关。
- 单击“下一步:工作负载访问方式”,单击“添加服务”设置访问方式。
访问类型选择“负载均衡 ( LoadBalancer )”或者“节点访问 ( NodePort )”,本例以“负载均衡 ( LoadBalancer )”为例。
Jenkins容器镜像有两个端口:8080和50000,需要分别配置:
- 8080端口供web登录使用,Service名称:jenkins(可自定义),容器端口:8080,访问端口:8080,其他默认。
- 50000端口供master和slave连接使用,Service名称:slave(可自定义),容器端口:50000,访问端口:50000,其他默认。
图7 添加服务 - 单击“下一步:高级设置”,“高级设置”步骤可以保持默认,直接单击“创建”,完成工作负载创建。
- 在创建成功页面单击“返回工作负载列表”,查看工作负载状态,若显示为“运行中”则jenkins应用已可以正常访问。图8 查看工作负载状态
登录并初始化Jenkins
- 在CCE控制台中,单击左侧栏目树中的“资源管理 > 网络管理”,在“Service”页签下选择jenkins访问8080端口对应的访问方式。图9 访问8080端口对应的访问方式
- 单击“访问地址”栏的IP地址即可打开jenkins配置页面。
初次访问时界面会提示获取初始管理员密码,该密码可在Pod中获取,如下所示。
# kubectl get pod NAME READY STATUS RESTARTS AGE jenkins-7c69b6947c-5gvlm 1/1 Running 0 17m # kubectl exec jenkins-7c69b6947c-5gvlm -it -- /bin/sh # cat /var/jenkins_home/secrets/initialAdminPassword b10eabe29a9f427c9b54c01a9c3383ae
- 选择默认推荐的插件即可。图10 安装插件
- 创建管理员。图11 创建管理员用户
- 实例配置。图12 实例配置图13 配置完成,开始使用
