前言

上篇讲了基于传统命令行和Docker安装Jenkins:
https://blog.csdn.net/m0_57776598/article/details/123692901?spm=1001.2014.3001.5501
也说了Jenkins的相关概念和重要目录,下面来操作基于K8S平台安装Jenkins

环境说明:

K8S:1.18.1版本,单机模式:一个master 两个node
Docker:Docker version 20.10.12, build e91ed57
CentOS7.5
|主机 IP|
|master | 192.168.9.10|
|node1 | 192.168.9.130 |
|node2 | 192.168.9.131 |
在这里插入图片描述

由于Jenkins的配置文件需要向外暴露,这里采用存储卷的形式来映射到Jenkins的工作目录(/var/jenkins_home)。存储卷以NFS网络存储卷为基础。
这里就是简单的存储卷,没有使用到PVC,PV等持久存储卷。

安装部署

搭建NFS服务端

说明:这里我把master节点作为NFS服务器,node1和node2作为客户端。
0、关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0           #关闭selinux
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

1、在master节点安装NFS服务端软件包

yum install -y nfs-utils rpcbind

2、创建存储目录

mkdir -p /data/volume

3、修改配置文件

vi /etc/exports
/data/volume 192.168.9.0/24(rw,async,no_root_squash)        #改成自己的网段

4、启动服务

systemctl restart rpcbind
systemctl enable nfs && systemctl restart nfs

5、测试本地NFS服务

showmount -e 127.0.0.1
Export list for master:
/data/volume 192.168.9.0/24

搭建NFS客户端

1、```bash
yum install -y nfs-utils

2、启动服务

```bash
systemctl restart rpcbind
systemctl enable nfs && systemctl restart nfs

3、测试服务端NFS服务

showmount -e master       #服务端IP
Export list for master:
/data/volume 192.168.9.0/24

安装Jenkins

1、先拉取镜像(所有节点)

docker pull jenkinsci/blueocean

2、编写deployment,services的YAML文件

[root@master ~]# cat deploy.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins-deploy
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jenkins
  template:
    metadata: 
      name: jenkins-pod
      namespace: default
      labels:
        app: jenkins
    spec:
      containers:
      - name: jenkins-con
        image: jenkinsci/blueocean:latest
        imagePullPolicy: IfNotPresent
        securityContext:                     
          runAsUser: 0    #设置以ROOT用户运行容器
          privileged: true   #拥有特权
        ports:
        - containerPort: 8080
          containerPort: 50000
        volumeMounts:
        - name: jenkins-j
          mountPath: /var/jenkins_home
      volumes:
      - name: jenkins-j
        nfs:
          path: /data/volume
          server: 192.168.9.10
---
apiVersion: v1
kind: Service
metadata:
  name: jenkins-svc
  namespace: default
  labels:
    app: jenkins-svc
spec:
  type: NodePort
  selector:
    app: jenkins
  ports:
  - port: 8080
    targetPort: 8080
    nodePort: 30002
 # - port: 50000
 #   targetPort: 50000
 #   nodePort: 30003

3、查看30002端口,并在浏览器访问:
IP:30002
在这里插入图片描述
2、获取密码
由于我们做了个NFS映射到本地的存储卷,所以我们在本地的:/data/volume/secrets/initialAdminPassword目录查看密码即可

[root@master ~]# vi /data/volume/secrets/initialAdminPassword 
e6f827081e85470fa992fff38883a837

输入即可,下面的插件安装不在介绍,请参考上篇文章。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐