当前位置: 首页 > news >正文

K8S学习之基础五十一:k8s部署jenkins

k8s部署jenkins

创建nfs共享目录,

mkdir -p /data/v2
echo ''/data/v2 *(rw,no_root_squash)' > /etc/exports
exportfs -arv

创建pv、pvc

vi pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: jenkins-k8s-pv
spec:
  capacity:
    storage: 1Gi
  accessModes:
  - ReadWriteMany
  nfs:
    server: 172.16.80.131
    path: /data/v2

vi pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: jenkins-k8s-pvc
  namespace: jenkins-k8s
spec:
  resources:
    requests:
      storage: 1Gi
  accessModes:
  - ReadWriteMany

创建一个sa账号,并做rbac授权

kubectl create sa jenkins-k8s-sa -n jenkins-k8s
kubectl create clusterrolebinding jenkins-k8s-sa-cluster   --clusterrole=cluster-admin --serviceaccount=jenkins-k8s:jenkins-k8s-sa

创建四个名称空间,分别为jenkins-k8s、开发、测试、生产

kubectl create namespace jenkins-k8s
kubectl create namespace development
kubectl create namespace qatest
kubectl create namespace production

harbor创建jenkins项目,上传jenkins2.426.3.tar.gz、jenkins.agent:v2到harbor/jenkins项目
部署jenkins,包括deployment和svc

vi jenkins-deployment.yaml 
kind: Deployment
apiVersion: apps/v1
metadata:
  name: jenkins
  namespace: jenkins-k8s
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jenkins
  template:
    metadata:
      labels:
        app: jenkins
    spec:
      serviceAccount: jenkins-k8s-sa
      containers:
      - name: jenkins
        image:  172.16.80.140/jenkins/jenkins:2.426.3
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080
          name: web
          protocol: TCP
        - containerPort: 50000
          name: agent
          protocol: TCP
        livenessProbe:
          httpGet:
            path: /login
            port: 8080
          initialDelaySeconds: 60
          timeoutSeconds: 5
          failureThreshold: 12
        readinessProbe:
          httpGet:
            path: /login
            port: 8080
          initialDelaySeconds: 60
          timeoutSeconds: 5
          failureThreshold: 12
        volumeMounts:
        - name: jenkins-volume
          subPath: jenkins-home
          mountPath: /var/jenkins_home
      volumes:
      - name: jenkins-volume
        persistentVolumeClaim:
          claimName: jenkins-k8s-pvc


vi jenkins-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: jenkins-service
  namespace: jenkins-k8s
  labels:
    app: jenkins
spec:
  selector:
    app: jenkins
  type: NodePort
  ports:
  - name: web
    port: 8080
    targetPort: web
    nodePort: 30002
  - name: agent
    port: 50000
    targetPort: agent

在这里插入图片描述
通过svc,用浏览器登录jenkins
在这里插入图片描述
在这里插入图片描述

相关文章:

  • Thera图像超分辨率模型使用
  • openpnp,cadence SPB17.4,placement - 从allegro中导出坐标文件的选项会影响贴片精度
  • 3ds Max 2026 新功能全面解析
  • 每日算法-250326
  • 23种设计模式-组合(Composite)设计模式
  • 汇编(六)——汇编语言程序格式及MASM
  • Checksum方法实现
  • C#基础学习(五)函数中的ref和out
  • VSCode 市场发现恶意扩展正在传播勒索软件!
  • kettle插件-rabbitmq插件
  • 23种设计模式-访问者(Visitor)设计模式
  • 无参数读文件和RCE
  • PySide6属性选择器设置样式避坑
  • 力扣32.最长有效括号(栈)
  • 数据库理论基础
  • python3 的字符串
  • Linux touch命令
  • STM32学习笔记之振荡器(原理篇)
  • 大模型学习笔记(Langchain实践笔记)
  • PAT乙级(1077 互评成绩计算)C语言
  • “五一”假期国内出游3.14亿人次,同比增长6.4%
  • 上海成五一国内最热门的入境游目的地,国际消费明显提升
  • 美国中央情报局计划裁员1200人
  • 多地景区发公告称售票达接待峰值,有景区暂停网络和线下售票
  • 体坛联播|曼联一只脚迈进欧联杯决赛,赵心童4比4奥沙利文
  • 短剧迷|《权宠》一出,《名不虚传》