jenkins 部署到k8s中使用宿主機Docker及kubectl的配置方式記錄


# jenkins使用官方yaml部署,記錄在jenkins 容器中調用主機Docker 進行build
# 由於maven編譯需要jdk,在jenkins中可以配置oracle賬號選擇jdk版本自動下載,但oracle網站有時不穩定造成jdk無法下載,所以以下為離線jdk部署方式 # 離線配置jdk方式:下載jdk包並解壓到
/mnt/data/jenkins_home/tools/hudson.model.JDK/jdk8/目錄下,在jenkins中配置jdk相對路徑/var/jenkins_home/tools/hudson.model.JDK/jdk8/jdk1.8.0_221(jdk8后面路徑要和解壓后的jdk路徑一致) # jenkins使用主機vm docker時需要掛載宿主機docker的幾個路徑並設置宿主機docker.sock權限:chmod 777 /var/run/docker.sock
--- apiVersion: apps/v1 kind: StatefulSet metadata: namespace: monitor-app name: jenkins labels: name: jenkins spec: selector: matchLabels: name: jenkins serviceName: jenkins replicas: 1 updateStrategy: type: RollingUpdate template: metadata: name: jenkins labels: name: jenkins spec: terminationGracePeriodSeconds: 10 serviceAccountName: jenkins nodeSelector: jtype: jenkins containers: - name: jenkins command: - /sbin/tini - /usr/local/bin/jenkins.sh - --prefix=/jenkins image: jenkins/jenkins:lts-alpine imagePullPolicy: IfNotPresent ports: - containerPort: 8080 - containerPort: 50000 resources: limits: cpu: 1 memory: 2Gi requests: cpu: 0.5 memory: 500Mi env: - name: LIMITS_MEMORY valueFrom: resourceFieldRef: resource: limits.memory divisor: 1Mi - name: JAVA_OPTS # value: -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 -XshowSettings:vm -Dhudson.slaves.NodeProvisioner.initialDelay=0 -Dhudson.slaves.NodeProvisioner.MARGIN=50 -Dhudson.slaves.NodeProvisioner.MARGIN0=0.85 value: -Xmx$(LIMITS_MEMORY)m -XshowSettings:vm -Dhudson.slaves.NodeProvisioner.initialDelay=0 -Dhudson.slaves.NodeProvisioner.MARGIN=50 -Dhudson.slaves.NodeProvisioner.MARGIN0=0.85 -D--prefix=/jenkins volumeMounts: - name: jenkins-home mountPath: /var/jenkins_home # - name: docker # mountPath: /usr/bin/docker # - name: docker-sock # mountPath: /var/run/docker.sock # - name: docker-login # mountPath: /root/.docker/config.json #將docker登錄信息掛載到容器中 livenessProbe: httpGet: path: /jenkins/login port: 8080 initialDelaySeconds: 60 timeoutSeconds: 5 failureThreshold: 12 # ~2 minutes readinessProbe: httpGet: path: /jenkins/login port: 8080 initialDelaySeconds: 60 timeoutSeconds: 5 failureThreshold: 12 securityContext: fsGroup: 1000 volumes: - name: jenkins-home hostPath: path: /mnt/data/jenkins # - name: docker # hostPath: # path: /usr/bin/docker # - name: docker-sock # hostPath: # path: /var/run/docker.sock # - hostPath: # path: /root/.docker/config.json # name: docker-login
#         - hostPath: # path: /usr/bin/kubectl # name: kubectl


     

---
apiVersion: v1
kind: Service
metadata:
  name: jenkins
  namespace: monitor-app
spec:
  selector:
    name: jenkins
  ports:
    - name: http
      port: 8066
      targetPort: 8080
      protocol: TCP
    - name: agent
      port: 50000
      protocol: TCP

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM