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

要把Jenkins部署到k8s集群里

在这里插入图片描述

现在长期维护版本是2.190.3
在这里插入图片描述

架构图里的jenkins是要部署到k8s里的
在这里插入图片描述
在这里插入图片描述

到运维主机做这个事情
在这里插入图片描述

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

push到harbor仓库里
在这里插入图片描述
在这里插入图片描述

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

要自定义一个dockerfile,要对官方的jenkins镜像做一次改变
在这里插入图片描述

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

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

建议使用自己邮箱
在这里插入图片描述

把私钥封装到jenkins镜像里,公钥拷贝到gitee
在这里插入图片描述

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

在这里插入图片描述

公钥 在这里插入图片描述

把id_rsa私钥拷贝到jenkins镜像里

在这里插入图片描述

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

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

不做指纹验证了,因为公网ip会变,访问gitee的时候会问你yes or no
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

cat -n看到有400多行,加上执行权限
在这里插入图片描述
在这里插入图片描述

harbor里新建一个仓库
在这里插入图片描述

弄一个私有仓库
在这里插入图片描述

属于管理员
在这里插入图片描述

去做jenkins镜像
在这里插入图片描述

build成功 就推到harbor仓库里
在这里插入图片描述

在这里插入图片描述

这个镜像就已经可以使用了
在这里插入图片描述

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

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

需要在k8s里创建一个名称空间,jenkins也是要单独的放到k8s里的名称空间,让它这个名称空间里只运行运维相关的基础设施服务
在这里插入图片描述

创建名称空间可以直接在dashboard创建一个
在这里插入图片描述
在这里插入图片描述

创建名称空间其实直接陈述式即可
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

要把jenkins镜像交付到infra,infra空间需要从一个harbor的私有仓库里拉取镜像,如果是私有的,就需要在任意一个运算节点,给infra名称空间创建一个secret资源,这个资源把harbor.od.com管理员账户和密码声明出来创建
在这里插入图片描述
在这里插入图片描述

infra名称空间,看一下secret
在这里插入图片描述

账户密码进来了,是base64编码,要decode解码
在这里插入图片描述

secret资源有三种类型,general通用型的,下面的default-token就是一个general类型的secret。
还有docker registry,tris
在这里插入图片描述

创建了infra仓库,然后推送镜像
在这里插入图片描述

准备共享存储
在这里插入图片描述

k8s里的Pod资源是如何共享数据的,jenkins一定有一些持久化数据,持久化的目录是/var/lib/jenkins/home,所以可以在外部准备共享存储
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

共享给10.4.7.0/24(可读可写,压缩成root权限
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

要在jenkins的资源配置定义一下
在这里插入图片描述

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

pod控制器现在两种,deployment(设置,起几个就起几个)和daemonset(每个节点起一个)
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

docker卷是挂在的本机,把本机的/run/docker.sock挂载到jenkinsi里的run/docker.sock,这样是jenkins的docker客户端,就可以进行socket通信
在这里插入图片描述

容器是jenkins,镜像是用的v2.190.3.
imagepullsecrets 镜像拉取策略(默认三种,always无论如何都要从harbor私有仓库去拉取镜像,无论本地是否有jenkins2.190.3,都要去harbor拉。
第二种是never,无论如何都不去远程仓库拉取镜像,都使用jenkins本地的v2.190.3
第三种是innot present,如果本地没有就从远程仓库员拉)
在这里插入图片描述

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

挂载路径
在这里插入图片描述

这个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用户运行,默认采用滚动升级的方法
在这里插入图片描述

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

容器多久运行还不正常,就判断失败,时间长一点
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

targetport是容器里跑的端口。上面的是监听在cluster ip上的端口
在这里插入图片描述
在这里插入图片描述

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

集群的ip只给你jenkins来使用,把这个/转发给jenkins这样的serviceName
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

挂载的是这个
在这里插入图片描述
在这里插入图片描述

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

4.11 在K8S里启动jenkins容器
先去应用dp.yaml,再去应用svc和ingress
在这里插入图片描述
在这里插入图片描述

k8s本身支持nfs驱动,直接volume type=nfs,可以直接支持,所以可以直接不用pv,来实现共享存储
在这里插入图片描述
在这里插入图片描述

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

资源占用就上来了
在这里插入图片描述

这个是admin password,放到dashboard里了
在这里插入图片描述
在这里插入图片描述

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

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

访问前需要解析域名
在这里插入图片描述

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

解析域名检查一下
在这里插入图片描述‘

浏览器输入域名到展示网页这个过程
’在这里插入图片描述

到jenkins目录里的secrets目录,里面有一个initialadminpassword
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

用户名admin密码 admin123
在这里插入图片描述
在这里插入图片描述

4.12 配置Jenkins安装插件、结尾
在这里插入图片描述

需要调整2个安全选项,允许匿名用户访问
在这里插入图片描述

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

第二件事就是安装plugin
在这里插入图片描述

安装部署重启jenkins

在这里插入图片描述

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

先构建起jenkins的流水线,要进行参数化构建,流水线就能适配Dubbo,微服务的使用者和消费者
在这里插入图片描述

在newitem里
在这里插入图片描述

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

在这里插入图片描述
只有fully up and running才证明jenkins完全起来了在这里插入图片描述
jenkins的容器还是比较耗费资源,普罗米修斯随便就吃20G内存
在这里插入图片描述

验证jenkins可用,需要做一些事情
在这里插入图片描述

在这里插入图片描述

用web shell的方式到jenkins容器里
在这里插入图片描述

是否以root方式启动,时区是否是东8区,是否连接到宿主机的docker引擎
在这里插入图片描述

跟21主机上所有容器列出的一模一样
在这里插入图片描述

还要去验证是否能登陆harbor仓库
在这里插入图片描述

这个是dockerfile里就指定的
在这里插入图片描述

用git用户去连接 test连接 -T指的是test测试连接,不是真正的连接
在这里插入图片描述

©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页