Helm部署和体验jenkins

除了提前准备好kubernetes环境,还需要做好以下准备工作:

  1. 准备好helm,您可以参考《部署和体验Helm(2.16.1版本) 》

  2. 准备好NFS服务,这样就算jenkins的pod被销毁重建,也不会丢失数据,NFS服务的搭建您可以参考《Ubuntu16环境安装和使用NFS》

准备完成后可以开始实战了

本次实战的namespace

本次实战使用名为helm-jenkins的namespace,执行以下命令创建:

kubectl create namespace helm-jenkins

创建PV

为了后面的jenkins服务顺利启动,需要预先部署好pv:

  1. 新建名为pv-helm-jenkins.yaml的文件,内容如下,其中192.168.133.142是NFS服务器地址,/usr/local/work/test/002是分配给本次实战使用的NFS文件夹:

apiVersion: v1

kind: PersistentVolume

metadata:

name: helm-jenkins

namespace: helm-jenkins

spec:

capacity:

storage: 10Gi

accessModes:

  • ReadWriteOnce

persistentVolumeReclaimPolicy: Recycle

nfs:

path: /usr/local/work/test/002

server: 192.168.133.142

  1. 执行命令kubectl create -f pv-helm-jenkins.yaml,创建PV;

  2. 查看PV是否已经就绪:

[root@node1 helm-jenkins]# kubectl get pv

NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE

helm-jenkins 10Gi RWO Recycle Available 5s

14h

helm安装jenkins

  1. 确保helm2.16.1版本安装完毕,并且可以正常工作:

[root@node1 helm-jenkins]# helm version

Client: &version.Version{SemVer:“v2.16.1”, GitCommit:“bbdfe5e7803a12bbdf97e94cd847859890cf4050”, GitTreeState:“clean”}

Server: &version.Version{SemVer:“v2.16.1”, GitCommit:“bbdfe5e7803a12bbdf97e94cd847859890cf4050”, GitTreeState:“clean”}

  1. 确保以下helm repo准备好(如果没有可以通过helm repo add添加):

[root@node1 helm-jenkins]# helm repo list

NAME URL

stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

  1. 执行以下命令,即可创建jenkins的deployment、service等资源:

helm install --namespace helm-jenkins --name my-jenkins stable/jenkins

  1. 执行完毕后,控制台输出以下内容:

NOTES:

  1. Get your ‘admin’ user password by running:

printf $(kubectl get secret --namespace helm-jenkins my-jenkins -o jsonpath=“{.data.jenkins-admin-password}” | base64 --decode);echo

  1. Get the Jenkins URL to visit by running these commands in the same shell:

NOTE: It may take a few minutes for the LoadBalancer IP to be available.

You can watch the status of by running ‘kubectl get svc --namespace helm-jenkins -w my-jenkins’

export SERVICE_IP=$(kubectl get svc --namespace helm-jenkins my-jenkins --template “{{ range (index .status.loadBalancer.ingress 0) }}{{ . }}{{ end }}”)

echo http://$SERVICE_IP:8080/login

  1. Login with the password from step 1 and the username: admin

上述内容的第一条给出重要提示:获取admin账号密码的方法,执行以下命令即可:

printf $(kubectl get secret --namespace helm-jenkins my-jenkins -o jsonpath=“{.data.jenkins-admin-password}” | base64 --decode);echo

如下图红框所示,我这里得到了admin密码为Eq6WxHvJ2V:

在这里插入图片描述

8. 检查服务,发现helm-jenkins这个namespace下有两个服务:my-jenkins和my-jenkins-agent,前者就是jenkins网站,后者用来接收执行任务的jenkins实例的注册:

[root@node1 helm-jenkins]# kubectl get svc -n helm-jenkins

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

my-jenkins LoadBalancer 10.233.10.35 8080:31763/TCP 31m

my-jenkins-agent ClusterIP 10.233.35.20 50000/TCP 31m

  1. my-jenkins这个服务的类型是LoadBalancer,8080端口被映射到宿主机的31763端口,因此,使用kubernetes集群中一台宿主机的IP,再加上31763端口即可通过浏览器访问;

至此,jenkins安装已完成,接下来要做必要的设置

设置kubernetes插件

为了让jenkins在以下模式工作,还需要设置kubernetes插件

  1. 点击下图红框中的"Manage Jenkins",进入设置页面:

在这里插入图片描述

  1. 由于很多插件版本较旧,页面上会有升级提示,这里暂时用不到,因此直接点击下图红框中的"Configure System":

在这里插入图片描述

  1. 点击下图红框1中的"Test Connection”按钮,您会见到红框2中的错误信息:

在这里插入图片描述

  1. 产生上述错误的原因,是由于jenkins容器没有权限访问kubernetes的api server,为了解决此问题,要先搞清楚容器的身份,我们知道容器在kubernetes环境中都有自己的serviceaccount,执行命令kubectl get serviceaccount -n helm-jenkins查看当前namespace下的serviceaccount:

[root@node1 helm-jenkins]# kubectl get serviceaccount -n helm-jenkins

NAME SECRETS AGE

default 1 3h55m

可见jenkins容器的serviceaccount是default

4. 知道了容器的serviceaccount,上述问题就好解决了,我们用RBAC将访问api server所需权限绑定给default即可,这里为了省事儿就不将权限一一列出了,接下来直接给default最高权限(生产环境千万别这么做,必须按需分配);

5. 新建名为rbac-helm-jenkins-default.yaml的文件,内容如下:

apiVersion: rbac.authorization.k8s.io/v1

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Java)

总结

在清楚了各个大厂的面试重点之后,就能很好的提高你刷题以及面试准备的效率,接下来小编也为大家准备了最新的互联网大厂资料。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
准备了最新的互联网大厂资料。

[外链图片转存中…(img-ksLJfCHF-1713854261626)]

[外链图片转存中…(img-d46gXzHu-1713854261626)]

[外链图片转存中…(img-h9XrRPRl-1713854261626)]

[外链图片转存中…(img-QdXUpnIw-1713854261627)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值