k8s下安装jenkins master

1、创建servicecount和并绑定ClusterRole

复制代码
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    name: jenkins
  name: jenkins
  namespace: default

---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: jenkins
  labels:
    name: jenkins
subjects:
  - kind: ServiceAccount
    name: jenkins
    namespace: jenkins
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io
复制代码

2、创建jenkins-master使用的pv和pvc

复制代码
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: jenkins-master
spec:
  persistentVolumeReclaimPolicy: Recycle
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  nfs:
    server: 192.168.0.211
    path: /data/nfs/jenkins-master

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: jenkins-master
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
复制代码

3、创建jenkins-master的deployment配置

此处采用nfs挂载jenkins的数据目录

复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins
  labels:
    name: jenkins
spec:
  selector:
    matchLabels:
      name: jenkins
  replicas: 1
  template:
    metadata:
      labels:
        name: jenkins
    spec:
      serviceAccountName: jenkins
      containers:
      - name: jenkins
        image: 192.168.0.217:5000/library/jenkins:lts
        ports:
        - name: http
          containerPort: 8080
        - name: agent
          containerPort: 50000
        resources:
          limits:
            memory: 2Gi
            cpu: "1000m"
          requests:
            memory: 1Gi
            cpu: "500m"
        env:
        - name: LIMITS_MEMORY
          valueFrom:
            resourceFieldRef:
              resource: limits.memory
              divisor: 1Mi
        - name: "JAVA_OPTS"
          value: "
                   -Xmx$(LIMITS_MEMORY)m
                   -XshowSettings:vm
                   -Dhudson.slaves.NodeProvisioner.initialDelay=0
                   -Dhudson.slaves.NodeProvisioner.MARGIN=50
                   -Dhudson.slaves.NodeProvisioner.MARGIN0=0.85
                   -Duser.timezone=Asia/Shanghai
                 "
        volumeMounts:
        - name: jenkins-home
          mountPath: /var/jenkins_home
      volumes:
      - name: jenkins-home
        persistentVolumeClaim:
          claimName: jenkins-master
复制代码

4、创建jenkins-master的service配置

此处采用两种方式:

第一种:采用NodePort方式

复制代码
kind: Service
apiVersion: v1
metadata:
  labels:
    name: jenkins
  name: jenkins
  namespace: default
spec:
  selector:
    name: jenkins
  type: NodePort
  ports:
    - name: http
      port: 8080
      targetPort: 8080
      nodePort: 30011
    - name: agent
      port: 50000
      targetPort: 50000
      nodePort: 30012
复制代码

第二种:采用ClusterIP方式,并使用ingress方式访问

复制代码
kind: Service
apiVersion: v1
metadata:
  labels:
    name: jenkins
  name: jenkins
  namespace: default
spec:
  selector:
    name: jenkins
  ports:
    - name: http
      port: 8080
      targetPort: 8080
    - name: agent
      port: 50000
      targetPort: 50000
复制代码

ingress文件如下:

复制代码
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-myapp
  namespace: default
spec:
  rules:
  - host: myapp.test.com
    http:
      paths:
      - path:
        backend:
          serviceName: jenkins
          servicePort: 8080
复制代码

在本地配置host后即可访问jenkins

 

posted @   流年晕开时光  阅读(361)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示