首页 > 其他分享 >Kubernetes部署jenkins

Kubernetes部署jenkins

时间:2024-09-13 15:14:53浏览次数:9  
标签:kind name Kubernetes ops 部署 jenkins resources metadata

目录

配置存储方式

本次使用 NFS 作为存储,请确保提前部署好 storageClass

创建命名空间

kubectl create ns ops

创建RBAC权限

# serviceaccount
apiVersion: v1
kind: ServiceAccount
metadata:
  name: jenkins
  namespace: ops

---
# clusterRole
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: jenkins
rules:
  - apiGroups: ["extensions", "apps"]
    resources: ["deployments", "ingresses"]
    verbs: ["create", "delete", "get", "list", "watch", "patch", "update"]
  - apiGroups: [""]
    resources: ["services"]
    verbs: ["create", "delete", "get", "list", "watch", "patch", "update"]
  - apiGroups: [""]
    resources: ["pods"]
    verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
  - apiGroups: [""]
    resources: ["pods/exec"]
    verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
  - apiGroups: [""]
    resources: ["pods/log", "events"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["secrets"]
    verbs: ["get"]

---
# clusterrolebinding
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: jenkins
  namespace: ops
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: jenkins
subjects:
  - kind: ServiceAccount
    name: jenkins
    namespace: ops

创建无头服务

apiVersion: v1
kind: Service
metadata:
  name: jenkins-svc
  namespace: ops
spec:
  clusterIP: None
  selector:
    app: jenkins
  ports:
    - name: http
      port: 8080
      targetPort: 8080
    - name: agent
      port: 50000
      targetPort: 50000

创建有状态服务

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: jenkins
  namespace: ops
spec:
  serviceName: "jenkins-svc"
  selector:
    matchLabels:
      app: jenkins
  template:
    metadata:
      labels:
        app: jenkins
    spec:
      serviceAccount: jenkins
      #imagePullSecrets:
      #- name: harbor-admin
      containers:
        - name: jenkins
          #image: jenkins/jenkins:2.401.2-lts
          image: jenkins/jenkins:2.473-jdk17
          imagePullPolicy: IfNotPresent
          securityContext:     # 添加参数启用容器root权限
            privileged: true
            runAsUser: 0        # root身份运行
          env:
          - name: JAVA_OPTS     
            value: -Duser.timezone=Asia/Shanghai
          ports:
            - name: http
              containerPort: 8080
            - name: agent
              containerPort: 50000 
          volumeMounts:
            - name: data
              mountPath: /var/jenkins_home

  volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      accessModes: ["ReadWriteOnce"]
      storageClassName: "nfs-storage"
      resources:
        requests:
          storage: 1Gi

创建ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: jenkins-ingress
  namespace: ops
spec:
  ingressClassName: "nginx"
  rules:
  - host: jenkins.ops.net
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: jenkins-svc 
            port:
              name: http

部署

kubectl apply -f .

标签:kind,name,Kubernetes,ops,部署,jenkins,resources,metadata
From: https://www.cnblogs.com/Unstoppable9527/p/18412221

相关文章

  • Ubuntu部署tomcat及基本配置
    Ubuntu部署tomcat及基本配置本文详细介绍了在Ubuntu系统中安装Java环境及Tomcat8的过程,包括下载、解压、设置路径以及开启服务。同时,讲解了如何修改Tomcat的默认端口号和网站根目录,以实现自定义配置。最后,提到了关闭防火墙以允许外部访问,并提供了重启服务的命令。1、tomcat的......
  • fastDFS - 单机部署 + nginx
    准备查看操作系统的版本信息[root@lab10~]#cat/etc/redhat-releaseCentOSLinuxrelease7.9.2009(Core)查看操作系统的网卡地址[root@lab10~]#ipaddressshowens322:ens32:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_faststateUPgroupdef......
  • minio分布式集群部署(三)
    一、优势分布式Minio可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务。由于硬盘分布在不同的节点上,分布式Minio避免了单点故障。分布式存储可靠性常用方法 分布式存储,很关键的点在于数据的可靠性,即保证数据的完整,不丢失,不损坏。只有在可靠性实现的前提下,才......
  • jenkins远程启动任务--启用远程触发构建
    一:前言在执行Jenkins的项目构建的时候,一般都是通过web管理界面中的”构建”来执行项目构建操作,但是除此之外我们还可以通过项目配置中的”构建触发器”来触发构建操作,其中”构建触发器”有一种方式是通过配置令牌远程触发项目构建。 二:设置用户token打开当前登录用户设置页面......
  • Springboot动物之家网站20338--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景在当今社会,随着人们对动物保护和自然生态的关注度不断提升,一个集动物科普、救助、交流于一体的平台显得尤为重要。为此,我们计划开发“......
  • Springboot电子商城的设计与实现710y1程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目概述本项目聚焦于设计与实现一个现代化、多功能的电子商城系统,旨在通过互联网技术搭建一个集商品展示、交易、支付、物流及售后服务于一体......
  • Springboot电影售票管理系统swy1p--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景电影市场的繁荣促使影院售票管理日益复杂,高效、准确的售票系统成为影院运营的关键。传统的手工售票方式不仅效率低下,还容易出现错误,影......
  • 基于SpringBoot+Vue+uniapp的图书馆管理系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp的成绩管理系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp的健身房预约系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......