Akiraka Akiraka
  • 首页
  • Linux
    • ELK
    • PHP
    • Shell
    • Nginx
    • Docker
      • Docker Compose
    • Centos
    • Ubuntu
    • Jenkins
  • Python
  • Mac OS
  • Windows
  • 大数据
    • Hadoop
    • CDH
    • Hive
    • Spark
    • ZooKeeper
  • 微服务
    • Kubernetes
    • Helm
  • Other
  • Quark
  • 首页
  • Linux
    • ELK
    • PHP
    • Shell
    • Nginx
    • Docker
      • Docker Compose
    • Centos
    • Ubuntu
    • Jenkins
  • Python
  • Mac OS
  • Windows
  • 大数据
    • Hadoop
    • CDH
    • Hive
    • Spark
    • ZooKeeper
  • 微服务
    • Kubernetes
    • Helm
  • Other
  • Quark
首页 › Kubernetes › Helm › Kubernetes(k8s)Helm 部署 Jenkins 持续化集成部署

Kubernetes(k8s)Helm 部署 Jenkins 持续化集成部署

Akiraka11月前

文章目录

  • 一、集群信息
    • 1.1、 主机信息
  • 一、集群信息
    • 1.1、 主机信息
    • 1.2、版本说明
  • 二、部署 NFS 服务
    • 2.1、 安装 NFS 与 rpcbind 服务
    • 2.2、集群节点安装 nfs
  • 三、部署 Jenkins
    • 3.1、 创建名称空间
    • 3.2、创建数据持久化目录
    • 3.3、使用 helm 获取 Jenkins
    • 3.4、创建 Jenkins Pv 配置
    • 3.5、使用 helm 安装 Jenkins
    • 3.6、查看 Jenkins Pod 状态
    • 3.7、使用 Jenkins Svc 节点
  • 四、访问 Jenkins 面板
    • 4.1、解锁 Jenkins
    • 4.2、安装步骤
    • 4.3、设置账号密码
    • 4.4、设置访问域名
  • 五、安装 Jenkins 插件
    • 5.1、 配置 Jenkins 插件加速
    • 5.2、安装 Jenkins 插件
    • 5.3、Jenkins 主题配置
  • k8s 插件

一、集群信息

  • 方法因人而异,但大同小异,以下是我的部署方法。

1.1、 主机信息

主机名|ip地址|描述|核心|内存

一、集群信息

  • 方法因人而异,但大同小异,以下是我的部署方法。

1.1、 主机信息

主机名 ip地址 描述 核心 内存
node-01 192.168.8.131 master 节点 2核 8G
node-02 192.168.8.132 node 节点 2核 8G
node-03 192.168.8.133 node 节点 2核 8G

1.2、版本说明

服务 版本
helm 3.1.1
Jenkins lst
Kubernetes 1.16.3

二、部署 NFS 服务

2.1、 安装 NFS 与 rpcbind 服务

#   创建 NFS 存储目录
mkdir -p /data/NFS
#   安装nfs服务
yum -y install nfs-utils rpcbind
#   修改配置文件
echo "/data/NFS *(rw,sync,no_root_squash,no_subtree_check)" > /etc/exports
#   启动服务
systemctl start nfs && systemctl start rpcbind
#   设置开机启动
systemctl enable nfs-server && systemctl enable rpcbind

2.2、集群节点安装 nfs

  • 重点全部节点都需要安装 nfs-utils 安装了即可不需要配置,否则节点无法挂载 PV
#   安装nfs服务
yum -y install nfs-utils

三、部署 Jenkins

3.1、 创建名称空间

  • 我喜欢将项目分类,管理类就丟到对应类别
kubectl create ns manager

3.2、创建数据持久化目录

mkdir -p /data/NFS/jenkins

3.3、使用 helm 获取 Jenkins

helm pull stable/jenkins --version 1.9.24
tar xvf jenkins-*.tgz

3.4、创建 Jenkins Pv 配置

  • 不需要继续任何操作,黏贴好代码就行了
#   下面代码直接复制黏贴即可
cat > jenkins/templates/jenkins-pv.yaml << EOF
---
{{- if .Values.persistence.enabled -}}
apiVersion: v1
kind: PersistentVolume
metadata:
    name: {{ .Values.persistence.storageClass }}
spec:
    capacity:
      storage: {{ .Values.persistence.size }}
    accessModes:
      - ReadWriteOnce
    volumeMode: Filesystem
    persistentVolumeReclaimPolicy: Retain
    storageClassName: {{ .Values.persistence.storageClass }}
    nfs:
      path: {{ .Values.nfs.path }}
      server: {{ .Values.nfs.server }}
{{ end }}
EOF

3.5、使用 helm 安装 Jenkins

  • 项目地址:https://hub.helm.sh/charts/stable/jenkins
#   下面代码直接复制黏贴即可
cat > install-jenkins.yaml << EOF
master:
  # 启用 ingress
  ingress:
    enabled: true
    hostName: cicd.akiraka.net
  # 使用节点标签
  nodeSelector:
    type: manager
  runAsUser: 0
  # 心跳检查
  healthProbes: false
  # jenkins slave 端口
  slaveHostPort: 50000
  # 增加 service slave 不设置无法连接
  extraPorts:
    - name: jenkins-slave
      port: 50000
  # 解决 Jenkins 时区问题
  javaOpts: "-Duser.timezone=Asia/Shanghai"
# pvc
persistence:
  enabled: true
  size: 30Gi
  # 自动绑定 pv
  storageClass: manager-jenkins-nfs
  # 解决时间不一致
  mounts:
  - name: localtime
    mountPath: /etc/localtime
  volumes:
  - name: localtime
    hostPath:
      path: /etc/localtime
# nfs
nfs:
  path: /jenkins
  server: 192.168.8.131
EOF

# helm 部署 Jenkins
helm install jenkins -n manager --values install-jenkins.yaml jenkins/

3.6、查看 Jenkins Pod 状态

  • 如果无法安装一直 init 状态,修改 jenkins-master-deployment.yaml 文件,删除 customInitContainers 下面内容 一直到 containers 即可
[root@Node-01 ~]# kubectl get pod -n manager -w
NAME                       READY   STATUS    RESTARTS   AGE
jenkins-7b9c7f5465-5wnp2   1/1     Running   0          3m28s

3.7、使用 Jenkins Svc 节点

[root@Node-01 ~]# kubectl get svc -n manager
NAME            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)     AGE
jenkins         ClusterIP   10.1.174.39    <none>        8080/TCP    4m28s
jenkins-agent   ClusterIP   10.1.249.133   <none>        50000/TCP   4m28s

四、访问 Jenkins 面板

  • 通过随机端口登录 Jenkins
  • 方式 http://ip:port

Kubernetes(k8s)Helm 部署 Jenkins 持续化集成部署-Akiraka

4.1、解锁 Jenkins

  • 进入数据持久化目录获取 管理员密码
# 会获取到一串字符串
cat /data/NFS/jenkins/data/secrets/initialAdminPassword

Kubernetes(k8s)Helm 部署 Jenkins 持续化集成部署-Akiraka

4.2、安装步骤

  • 什么插件都不安装
    Kubernetes(k8s)Helm 部署 Jenkins 持续化集成部署-Akiraka

4.3、设置账号密码

Kubernetes(k8s)Helm 部署 Jenkins 持续化集成部署-Akiraka

4.4、设置访问域名

Kubernetes(k8s)Helm 部署 Jenkins 持续化集成部署-Akiraka

五、安装 Jenkins 插件

5.1、 配置 Jenkins 插件加速

  • 进入 Jenkins 数据持久化目录
  • 必须重启 jenkins 才能让插件加速生效
cd /data/NFS/jenkins/data
sed -i &#039;s/http://www.google.com/https://www.baidu.com/g&#039; default.json && 
sed -i &#039;s/http://updates.jenkins-ci.org/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g&#039; default.json

# 腾讯源
https://mirrors.cloud.tencent.com/jenkins/updates/update-center.json

5.2、安装 Jenkins 插件

插件 说明
Git 拉取代码
SSH SSH 远程执行
Gitee 码云插件
Maven 对 Maven 项目构建
NodeJs 对 NodeJs 项目构建
DingTalk 钉钉通知
Pipeline 流水线
Kubernetes 动态创建代理
simple theme 主题
Git Parameter 动态从 git 中获取所有分支
Managed Scripts 管理脚本插件
Deploy to container 热部署插件
Extended Choice Parameter 扩展参数构建
Role-based Authorization Strategy 权限管理
Localization: Chinese (Simplified) 简体中文

5.3、Jenkins 主题配置

  • 系统管理 > 系统配置
  • 找到 Theme 点击新增 CSS URL 将下面地址黏贴进去
http://afonsof.com/jenkins-material-theme/dist/material-light.css

k8s 插件

https://kubernetes.default
http://jenkins.manager.svc.cluster.local:8080
#helm#k8s#kubernetes
1
分享
Akiraka 站长
文章 121评论 10
相关文章
  • 存活探针(Liveness)、就绪探针(Readiness)、启动探针(Startup)、容器钩子
  • kubernetes Node 宕机 Pod 驱离
  • Helm 部署 Loki 日志聚合
  • 密码保护:Kubeadm-etcd 备份
  • Kubernetes(k8s)helm 部署 Traefik
评论 (2)
再想想
  • 匿名

    嘿 大佬 我想请教一下grafana的问题,但是不知道如何加入你的QQ群

    10月前
    • akiraka

      @匿名 抱歉,刚刚看到,最近在忙,大概是什么问题,可以说下嘛。我有套方案不知道你那边是否可用

      10月前
Akiraka
站长
本人擅长 Ai、Au、Fl、Ae、Pr、Ps 等软件的安装与卸载,精通 CSS、JavaScript、PHP、Python、Shell、Go 等单词的拼写,熟悉 Windows、Linux、Mac、Android、IOS 等系统的开关机!
121文章
10评论
47获赞
想找什么搜一下
文章聚合
WordPress 隐藏后台地址
1年前
Docker 使用官方镜像构建 nginx 容器
1年前
Kubernetes(k8s)helm 搭建 prometheus + Grafana 监控
12月前
Kubernetes(k8s)Helm 部署 Mysql 数据库
12月前
ubuntu 18.04网络设置
1年前
微信小程序
微信小程序
标签云
brew cdh centos cmd docker docker compose elasticsearch elk filebase filebeat gitlab grafana hadoop helm hive hue jdk jenkins k8s kibana kubernetes liniux linux logstash mac mikrotik mydumper mysql nfs nginx openssl oss php pip pyspark python RabbitMQ redis rocketmq shell Spark ubuntu windows ZooKeeper 容器编排
Copyright © 2019-2021 Akiraka. Designed by nicetheme. 沪18036911号