【K8S运维知识汇总】第4天11:安装部署jenkins

要把Jenkins部署到k8s集群里

【K8S运维知识汇总】第4天11:安装部署jenkins_第1张图片

现在长期维护版本是2.190.3
【K8S运维知识汇总】第4天11:安装部署jenkins_第2张图片

架构图里的jenkins是要部署到k8s里的
【K8S运维知识汇总】第4天11:安装部署jenkins_第3张图片
【K8S运维知识汇总】第4天11:安装部署jenkins_第4张图片

到运维主机做这个事情
【K8S运维知识汇总】第4天11:安装部署jenkins_第5张图片

traefik其实和宿主机用的同一个网络名称空间,才能把81端口映射出来
在这里插入图片描述
在这里插入图片描述

push到harbor仓库里
【K8S运维知识汇总】第4天11:安装部署jenkins_第6张图片
【K8S运维知识汇总】第4天11:安装部署jenkins_第7张图片

官方的jenkins镜像不能直接使用,做一定配置才能启用

要自定义一个dockerfile,要对官方的jenkins镜像做一次改变
【K8S运维知识汇总】第4天11:安装部署jenkins_第8张图片

官方的镜像起的时候 不是用root,而是普通用户,run就是把docker里的时区改成了东8区,
在这里插入图片描述

要做一对ssh秘钥
在这里插入图片描述

建议使用自己邮箱
【K8S运维知识汇总】第4天11:安装部署jenkins_第9张图片

把私钥封装到jenkins镜像里,公钥拷贝到gitee
【K8S运维知识汇总】第4天11:安装部署jenkins_第10张图片

公钥贴到这里就可以拉代码了

【K8S运维知识汇总】第4天11:安装部署jenkins_第11张图片

公钥 在这里插入图片描述

把id_rsa私钥拷贝到jenkins镜像里

【K8S运维知识汇总】第4天11:安装部署jenkins_第12张图片

config.json是登陆远程仓库的认证信息,说白了把harbor仓库的管理员json给jenkins镜像封装进去,封装到/root/.docker/config/config.json
在这里插入图片描述

要在jenkins里去装 一个docker的客户端,依赖宿主机的docker引擎,只是在jenkins里装一个客户端,让它和宿主机的docker引擎进行通信。如果要把jenkins放到docker容器的方式交互,必须在jenkins镜像里安装并交付一个docker的客户端
在这里插入图片描述

不做指纹验证了,因为公网ip会变,访问gitee的时候会问你yes or no
在这里插入图片描述
【K8S运维知识汇总】第4天11:安装部署jenkins_第13张图片
【K8S运维知识汇总】第4天11:安装部署jenkins_第14张图片
【K8S运维知识汇总】第4天11:安装部署jenkins_第15张图片
【K8S运维知识汇总】第4天11:安装部署jenkins_第16张图片
在这里插入图片描述

cat -n看到有400多行,加上执行权限
在这里插入图片描述
【K8S运维知识汇总】第4天11:安装部署jenkins_第17张图片

harbor里新建一个仓库
【K8S运维知识汇总】第4天11:安装部署jenkins_第18张图片

弄一个私有仓库
【K8S运维知识汇总】第4天11:安装部署jenkins_第19张图片

属于管理员
【K8S运维知识汇总】第4天11:安装部署jenkins_第20张图片

去做jenkins镜像
【K8S运维知识汇总】第4天11:安装部署jenkins_第21张图片

build成功 就推到harbor仓库里
【K8S运维知识汇总】第4天11:安装部署jenkins_第22张图片

【K8S运维知识汇总】第4天11:安装部署jenkins_第23张图片

这个镜像就已经可以使用了
【K8S运维知识汇总】第4天11:安装部署jenkins_第24张图片

记得把公钥放到gitee上
在这里插入图片描述

没有check ssh密钥的指纹
在这里插入图片描述

需要在k8s里创建一个名称空间,jenkins也是要单独的放到k8s里的名称空间,让它这个名称空间里只运行运维相关的基础设施服务
【K8S运维知识汇总】第4天11:安装部署jenkins_第25张图片

创建名称空间可以直接在dashboard创建一个
【K8S运维知识汇总】第4天11:安装部署jenkins_第26张图片
【K8S运维知识汇总】第4天11:安装部署jenkins_第27张图片

创建名称空间其实直接陈述式即可
【K8S运维知识汇总】第4天11:安装部署jenkins_第28张图片
【K8S运维知识汇总】第4天11:安装部署jenkins_第29张图片

要把jenkins镜像交付到infra,infra空间需要从一个harbor的私有仓库里拉取镜像,如果是私有的,就需要在任意一个运算节点,给infra名称空间创建一个secret资源,这个资源把harbor.od.com管理员账户和密码声明出来创建
在这里插入图片描述
【K8S运维知识汇总】第4天11:安装部署jenkins_第30张图片

infra名称空间,看一下secret
【K8S运维知识汇总】第4天11:安装部署jenkins_第31张图片

账户密码进来了,是base64编码,要decode解码
【K8S运维知识汇总】第4天11:安装部署jenkins_第32张图片

secret资源有三种类型,general通用型的,下面的default-token就是一个general类型的secret。
还有docker registry,tris
【K8S运维知识汇总】第4天11:安装部署jenkins_第33张图片

创建了infra仓库,然后推送镜像
【K8S运维知识汇总】第4天11:安装部署jenkins_第34张图片

准备共享存储
【K8S运维知识汇总】第4天11:安装部署jenkins_第35张图片

k8s里的Pod资源是如何共享数据的,jenkins一定有一些持久化数据,持久化的目录是/var/lib/jenkins/home,所以可以在外部准备共享存储
【K8S运维知识汇总】第4天11:安装部署jenkins_第36张图片
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
【K8S运维知识汇总】第4天11:安装部署jenkins_第37张图片

共享给10.4.7.0/24(可读可写,压缩成root权限
在这里插入图片描述在这里插入图片描述在这里插入图片描述
【K8S运维知识汇总】第4天11:安装部署jenkins_第38张图片
【K8S运维知识汇总】第4天11:安装部署jenkins_第39张图片

要在jenkins的资源配置定义一下
【K8S运维知识汇总】第4天11:安装部署jenkins_第40张图片

jenkins是一个bs程序,我们要用web页面打开

pod控制器现在两种,deployment(设置,起几个就起几个)和daemonset(每个节点起一个)
【K8S运维知识汇总】第4天11:安装部署jenkins_第41张图片
【K8S运维知识汇总】第4天11:安装部署jenkins_第42张图片

用的是nfs的卷,server是hdss7-200

【K8S运维知识汇总】第4天11:安装部署jenkins_第43张图片

docker卷是挂在的本机,把本机的/run/docker.sock挂载到jenkinsi里的run/docker.sock,这样是jenkins的docker客户端,就可以进行socket通信
【K8S运维知识汇总】第4天11:安装部署jenkins_第44张图片

容器是jenkins,镜像是用的v2.190.3.
imagepullsecrets 镜像拉取策略(默认三种,always无论如何都要从harbor私有仓库去拉取镜像,无论本地是否有jenkins2.190.3,都要去harbor拉。
第二种是never,无论如何都不去远程仓库拉取镜像,都使用jenkins本地的v2.190.3
第三种是innot present,如果本地没有就从远程仓库员拉)
【K8S运维知识汇总】第4天11:安装部署jenkins_第45张图片

jenkins还是比较吃资源的就给个512
在这里插入图片描述

挂载路径
【K8S运维知识汇总】第4天11:安装部署jenkins_第46张图片

这个imgaepullsecrets就是harbor infra创建的secret,当你想去harbor拉取私有的仓库镜像,必须加imagepullsecret

私有仓库的做法需要先到名称空间 create secret,这个secret类型是docker registry,名称叫harbor,docker server是docker.od.com,docker user name是admin -n制定名称空间

在k8s资源配置清单里的pod控制器的统一配置清单里要声明imagepullsecret,是你的secret名字,sercet的名字name: harbor

一般是harbor仓库里叫app,k8s的名称空间按照项目组A,B,都把镜像放到了app仓库里,只要app仓库是私有的,都需要去create secret
在这里插入图片描述

默认用root用户运行,默认采用滚动升级的方法
【K8S运维知识汇总】第4天11:安装部署jenkins_第47张图片

留7份使用
在这里插入图片描述

容器多久运行还不正常,就判断失败,时间长一点
在这里插入图片描述
【K8S运维知识汇总】第4天11:安装部署jenkins_第48张图片
【K8S运维知识汇总】第4天11:安装部署jenkins_第49张图片

targetport是容器里跑的端口。上面的是监听在cluster ip上的端口
在这里插入图片描述
【K8S运维知识汇总】第4天11:安装部署jenkins_第50张图片

这里关系到了ingress怎么写,service port 80要和ingress80匹配上,没匹配上 就会出错
在这里插入图片描述

集群的ip只给你jenkins来使用,把这个/转发给jenkins这样的serviceName
【K8S运维知识汇总】第4天11:安装部署jenkins_第51张图片
【K8S运维知识汇总】第4天11:安装部署jenkins_第52张图片
在这里插入图片描述

挂载的是这个
【K8S运维知识汇总】第4天11:安装部署jenkins_第53张图片
在这里插入图片描述

为什么要挂到jenkins目录,因为要和宿主机docker引擎的服务端通信,真正用的引擎是宿主机引擎
在这里插入图片描述

4.11 在K8S里启动jenkins容器
先去应用dp.yaml,再去应用svc和ingress
【K8S运维知识汇总】第4天11:安装部署jenkins_第54张图片
【K8S运维知识汇总】第4天11:安装部署jenkins_第55张图片

k8s本身支持nfs驱动,直接volume type=nfs,可以直接支持,所以可以直接不用pv,来实现共享存储
【K8S运维知识汇总】第4天11:安装部署jenkins_第56张图片
【K8S运维知识汇总】第4天11:安装部署jenkins_第57张图片

之前7-21比较闲置,就在21上起来了
在这里插入图片描述

资源占用就上来了
【K8S运维知识汇总】第4天11:安装部署jenkins_第58张图片

这个是admin password,放到dashboard里了
【K8S运维知识汇总】第4天11:安装部署jenkins_第59张图片
【K8S运维知识汇总】第4天11:安装部署jenkins_第60张图片

jenkis挂在目录位置是在200上
在这里插入图片描述

容器初始化工作完成了
在这里插入图片描述
在这里插入图片描述

访问前需要解析域名
【K8S运维知识汇总】第4天11:安装部署jenkins_第61张图片

解析到vip,10.4.7.10
在这里插入图片描述

解析域名检查一下
【K8S运维知识汇总】第4天11:安装部署jenkins_第62张图片

浏览器输入域名到展示网页这个过程
【K8S运维知识汇总】第4天11:安装部署jenkins_第63张图片

到jenkins目录里的secrets目录,里面有一个initialadminpassword
【K8S运维知识汇总】第4天11:安装部署jenkins_第64张图片
【K8S运维知识汇总】第4天11:安装部署jenkins_第65张图片

所有插件都可以启动后再装

【K8S运维知识汇总】第4天11:安装部署jenkins_第66张图片

用户名admin密码 admin123
【K8S运维知识汇总】第4天11:安装部署jenkins_第67张图片
【K8S运维知识汇总】第4天11:安装部署jenkins_第68张图片

4.12 配置Jenkins安装插件、结尾
【K8S运维知识汇总】第4天11:安装部署jenkins_第69张图片

需要调整2个安全选项,允许匿名用户访问
【K8S运维知识汇总】第4天11:安装部署jenkins_第70张图片

不阻止跨域
在这里插入图片描述、

第二件事就是安装plugin
【K8S运维知识汇总】第4天11:安装部署jenkins_第71张图片

安装部署重启jenkins

【K8S运维知识汇总】第4天11:安装部署jenkins_第72张图片

实战中可以给jenkins配置国内镜像源,下载快点,blue ocean对流水线支持比较好

先构建起jenkins的流水线,要进行参数化构建,流水线就能适配Dubbo,微服务的使用者和消费者
【K8S运维知识汇总】第4天11:安装部署jenkins_第73张图片

在newitem里
【K8S运维知识汇总】第4天11:安装部署jenkins_第74张图片

dashboard,rbac的机制,需要根据rbac的机制,去给dashboard创建service account,让不同的服务账户有不同的权限
安装jenkins的blue ocean

【K8S运维知识汇总】第4天11:安装部署jenkins_第75张图片

你可能感兴趣的:(K8S运维知识汇总)