jenkins部署安装-k8s部署

jenkins 介绍

jenkins 介绍

jenkins 是一个基于 java 开发的在自动化服务器,是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。

特性:

易于安装
易于配置
集成 RSS/Email,通过 RSS 发布构建结果或通过 email 通知
生成 Junit/TestNG 测试报告
支持分布式构建,让多台计算机一起构建
文件识别,能跟踪哪次构建了哪些包
插件支持,大量官方插件以及可自定义插件

jenkins 搭建

war 部署
下载最新的 jenkins war 包 下载地址 https://www.jenkins.io/zh/
两种启动方法:
java -jar jenkins.war, 然后通过 8080 端口访问
将 war 包放到 tomcat 的 webapps 目录下,然后启动 tomcat,通过本机域名/jenkins访问

k8s部署

创建yaml文件 jenkins.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  name: jenkins
  namespace: mysql-nacos
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: jenkins
  namespace: mysql-nacos
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"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: jenkins
  namespace: mysql-nacos
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: jenkins
subjects:
  - kind: ServiceAccount
    name: jenkins
    namespace: mysql-nacos
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: jenkins
  namespace: mysql-nacos
spec:
  serviceName: jenkins
  selector:
    matchLabels:
      app: jenkins
  template:
    metadata:
      labels:
        app: jenkins
    spec:
      serviceAccount: jenkins
      initContainers:
        - name: fix-permissions
          image: busybox:1.35.0
          command: ["sh", "-c", "chown -R 1000:1000 /var/jenkins_home"]
          securityContext:
            privileged: true
          volumeMounts:
            - name: jenkins-home-sit-test
              mountPath: /var/jenkins_home
      containers:
        - name: jenkins
          image: jenkins/jenkins:2.414.1-lts-jdk11
          imagePullPolicy: IfNotPresent
          env:
          - name: JAVA_OPTS
            value: -Dhudson.model.DownloadService.noSignatureCheck=true
          ports:
            - containerPort: 8080
              name: web
              protocol: TCP
            - containerPort: 50000
              name: agent
              protocol: TCP
          resources:
            limits:
              cpu: 4000m
              memory: 4Gi
            requests:
              cpu: 500m
              memory: 1000Mi
          readinessProbe:
            httpGet:
              path: /login
              port: 8080
            initialDelaySeconds: 60
            timeoutSeconds: 5
            failureThreshold: 12
          volumeMounts:
            - name: jenkins-home-sit-test
              mountPath: /var/jenkins_home
  volumeClaimTemplates:
  - metadata:
      name: jenkins-home-sit-test
      labels:
        app: jenkins
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: rook-ceph-block
      resources:
        requests:
          storage: 3Gi
kubectl apply -f jenkins.yaml
 kubectl get po -n mysql-nacos 
NAME                                READY   STATUS    RESTARTS      AGE
jenkins-0                           1/1     Running   0             27m

创建svc访问 jenkins-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: jenkins
  namespace: mysql-nacos
  labels:
    app: jenkins
spec:
  type: NodePort
  selector:
    app: jenkins
  ports:
    - name: web
      port: 8080
      targetPort: web
      nodePort: 30337
    - name: agent
      port: 50000
      targetPort: agent

 kubectl apply -f jenkins-svc.yaml

通过主机ip+端口访问即可

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值