国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

K8s集群部署最新Jenkins 2.387.1

這篇具有很好參考價(jià)值的文章主要介紹了K8s集群部署最新Jenkins 2.387.1。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

概述

Jenkins是一個(gè)開(kāi)源軟件項(xiàng)目,是基于Java開(kāi)發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復(fù)的工作,旨在提供一個(gè)開(kāi)放易用的軟件平臺(tái),使軟件項(xiàng)目可以進(jìn)行持續(xù)集成。在Devops時(shí)代Jenkins有著不可缺失地位,也體現(xiàn)了Jenkins的亮點(diǎn),廢話(huà)不多說(shuō),我們進(jìn)入在k8s環(huán)境下安裝最新的Jenkins。

環(huán)境準(zhǔn)備

一般k8s的數(shù)據(jù)都會(huì)存放于遠(yuǎn)程存儲(chǔ)服務(wù)器上來(lái)保證安全,采用的方式也有很多,如nfs,ceph等等多種,這里我們介紹nfs存儲(chǔ)。nfs存儲(chǔ)配置簡(jiǎn)單,但存是儲(chǔ)量特別大,傳輸特別頻繁的情況下難免會(huì)出現(xiàn)傳輸延遲,難以保證高并發(fā)時(shí)的數(shù)據(jù)完整性和高性能等問(wèn)題,但是很多公司的基本要求還是可以滿(mǎn)足的。

這里我們需要先創(chuàng)建一臺(tái)虛擬機(jī)或者服務(wù)器作為NFS服務(wù)器,這里筆者已經(jīng)提前創(chuàng)建好了網(wǎng)段和k8s環(huán)境一樣,然后往k8s所有master節(jié)點(diǎn)和worker節(jié)點(diǎn)host加入nfs主機(jī)映射,在hosts文件加入如下內(nèi)容:

#nfs主機(jī)的ip 后面掛在會(huì)用到name
10.211.55.6 storage
設(shè)置存儲(chǔ)目錄并啟動(dòng)NFS服務(wù)

我們先創(chuàng)建共享目錄,比如這里需要?jiǎng)?chuàng)建/data/k8s 目錄,需要提前創(chuàng)建,然后往/etc/exports文件加入對(duì)應(yīng)的nfs共享配置,具體操作如下:

#創(chuàng)建nfs共享目錄
mkdir -p /data/k8s
#修改權(quán)限
chmod 777 -R 777 /data
#往exports文件寫(xiě)入配置,然后保存
vi /etc/exports
/data/k8s   10.211.55.0/24(rw,no_root_squash,sync)
#配置生效
exportfs -r
#查看生效
exportfs

#安裝nfs服務(wù)
yum -y install nfs-utils
#啟動(dòng)rpcbind、nfs服務(wù)
systemctl restart rpcbind && systemctl enable rpcbind
systemctl restart nfs && systemctl enable nf
安裝 NFS 服務(wù)端

我們?cè)趙orker節(jié)點(diǎn)安裝nfs服務(wù),不需要啟動(dòng),這里只是需要測(cè)試掛載,如果已經(jīng)安裝請(qǐng)忽略即可。

#所有worker節(jié)點(diǎn)安裝客戶(hù)端,不需要啟動(dòng)
yum -y install nfs-utils
# worker節(jié)點(diǎn)測(cè)試掛載storage=nfs服務(wù)地址
mount -t nfs storage:/data/k8s /mnt
# 卸載
umount /mnt

動(dòng)態(tài)創(chuàng)建 NFS存儲(chǔ)(動(dòng)態(tài)存儲(chǔ))

mkdir my-nfs-client-provisioner && cd my-nfs-client-provisioner
#nfs rbac
cat > rbac.yaml << EOF
apiVersion: v1
kind: ServiceAccount
metadata:
  name: nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: default
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: nfs-client-provisioner-runner
rules:
  - apiGroups: [""]
    resources: ["persistentvolumes"]
    verbs: ["get", "list", "watch", "create", "delete"]
  - apiGroups: [""]
    resources: ["persistentvolumeclaims"]
    verbs: ["get", "list", "watch", "update"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["storageclasses"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["events"]
    verbs: ["create", "update", "patch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: run-nfs-client-provisioner
subjects:
  - kind: ServiceAccount
    name: nfs-client-provisioner
    # replace with namespace where provisioner is deployed
    namespace: default
roleRef:
  kind: ClusterRole
  name: nfs-client-provisioner-runner
  apiGroup: rbac.authorization.k8s.io
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: leader-locking-nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: default
rules:
  - apiGroups: [""]
    resources: ["endpoints"]
    verbs: ["get", "list", "watch", "create", "update", "patch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: leader-locking-nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: default
subjects:
  - kind: ServiceAccount
    name: nfs-client-provisioner
    # replace with namespace where provisioner is deployed
    namespace: default
roleRef:
  kind: Role
  name: leader-locking-nfs-client-provisioner
  apiGroup: rbac.authorization.k8s.io
EOF

# nfs deployment
cat > deployment.yaml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nfs-client-provisioner
  labels:
    app: nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: default
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: nfs-client-provisioner
  template:
    metadata:
      labels:
        app: nfs-client-provisioner
    spec:
      serviceAccountName: nfs-client-provisioner
      containers:
        - name: nfs-client-provisioner
          image: dyrnq/nfs-subdir-external-provisioner:v4.0.2
          volumeMounts:
            - name: nfs-client-root
              mountPath: /persistentvolumes
          env:
            - name: PROVISIONER_NAME
              value: fuseim.pri/ifs
            - name: NFS_SERVER
              value: storage  # 注意此處修改
            - name: NFS_PATH
              value: /data/k8s   # 注意此處修改
      volumes:
        - name: nfs-client-root
          nfs:
            server: storage   # 注意此處修改
            path: /data/k8s    # 注意此處修改
EOF

# nfs class
cat > class.yaml << EOF
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: managed-nfs-storage
provisioner: fuseim.pri/ifs # or choose another name, must match deployment's env PROVISIONER_NAME'
parameters:
  archiveOnDelete: "false"
EOF

部署jenkins服務(wù)

mkdir jenkins & cd jenkins

#jenkins rbac
cat > Jenkins-rbac.yaml << EOF
apiVersion: v1
kind: Namespace
metadata:
  name: jenkins
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: jenkins
  namespace: jenkins
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
  name: jenkins
rules:
- apiGroups:
  - '*'
  resources:
  - statefulsets
  - services
  - replicationcontrollers
  - replicasets
  - podtemplates
  - podsecuritypolicies
  - pods
  - pods/log
  - pods/exec
  - podpreset
  - poddisruptionbudget
  - persistentvolumes
  - persistentvolumeclaims
  - jobs
  - endpoints
  - deployments
  - deployments/scale
  - daemonsets
  - cronjobs
  - configmaps
  - namespaces
  - events
  - secrets
  verbs:
  - create
  - get
  - watch
  - delete
  - list
  - patch
  - update
- apiGroups:
  - ""
  resources:
  - nodes
  verbs:
  - get
  - list
  - watch
  - update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
  name: jenkins
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: jenkins
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: system:serviceaccounts:jenkins
EOF

#jenkins deployment
cat > Jenkins-Deployment.yaml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins
  namespace: jenkins
  labels:
    app: jenkins
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jenkins
  template:
    metadata:
      labels:
        app: jenkins
    spec:
      containers:
      - name: jenkins
        image: jenkins/jenkins:lts-jdk11
        ports:
        - containerPort: 8080
          name: web
          protocol: TCP
        - containerPort: 50000
          name: agent
          protocol: TCP
        #resources:
          #limits:
            #memory: 4Gi
            #cpu: "2000m"
          #requests:
            #memory: 4Gi
            #cpu: "2000m"
        env:
        - name: LIMITS_MEMORY
          valueFrom:
            resourceFieldRef:
              resource: limits.memory
              divisor: 1Mi
        - name: JAVA_OPTS
          value: -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true
        volumeMounts:
        - name: jenkins-home
          mountPath: /var/jenkins_home
      volumes:
      - name: jenkins-home
        persistentVolumeClaim:
          claimName: jenkins-home
---
apiVersion: v1
kind:  PersistentVolumeClaim
metadata:
  name: jenkins-home
  namespace: jenkins
spec:
  storageClassName: "jenkins-nfs-sc"
  accessModes: [ReadWriteOnce]
  resources:
    requests:
      storage: 20Gi
EOF

#jenkins service
cat > Jenkins-Service.yaml << EOF
apiVersion: v1
kind: Service
metadata:
  name: jenkins
  namespace: jenkins
  labels:
    app: jenkins
spec:
  selector:
    app: jenkins
  ports:
  - name: web
    port: 8080
    targetPort: web
  - name: agent
    port: 50000
    targetPort: agent
EOF

#jenkins nfs
cat > jenkins-nfs-sc.yml << EOF
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: jenkins-nfs-sc
provisioner: fuseim.pri/ifs 
parameters:
  archiveOnDelete: "false"
EOF

#先部署jenkins nfs
kubectl apply -f jenkins-nfs-sc.yml

執(zhí)行部署

kubectl apply -f Jenkins-rbac.yaml -f Jenkins-Deployment.yaml -f Jenkins-Service.yaml

查看jenkins初始化信息

kubectl get pods -n jenkins -l app=jenkins

kubectl logs -f jenkins-xxxx-xxxx -n jenkins #初始化密鑰就在日志里面

通過(guò)NodePort暴露端口
注意,也可以通過(guò)ingress通過(guò)域名方式暴露(推薦)

K8s集群部署最新Jenkins 2.387.1,kubernetes,kubernetes,jenkins,java

# kubectl edit svc jenkins -n jenkins

# kubectl get svc -n jenkins
NAME      TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)                          AGE
jenkins   NodePort   10.100.241.123   <none>        8080:32767/TCP,50000:30750/TCP   9m38s

訪(fǎng)問(wèn):http://10.211.55.3:30002/文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-536447.html

到了這里,關(guān)于K8s集群部署最新Jenkins 2.387.1的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Kubernetes(k8s)實(shí)戰(zhàn):使用k8s+jenkins實(shí)現(xiàn)CICD

    Kubernetes(k8s)實(shí)戰(zhàn):使用k8s+jenkins實(shí)現(xiàn)CICD

    CIDI(Continuous Integration,Continuous Delivery Deployment),持續(xù)集成,持續(xù)部署,持續(xù)發(fā)布。 也就是說(shuō),在本地開(kāi)發(fā)完代碼之后,push到遠(yuǎn)程倉(cāng)庫(kù),然后代碼打包、部署的這個(gè)過(guò)程完全是自動(dòng)化完成的。 但是我們不要進(jìn)入一個(gè)誤區(qū),CICD并不意味著一定就是這一套流程,只要實(shí)現(xiàn)了代

    2024年02月12日
    瀏覽(31)
  • 【業(yè)務(wù)功能115】微服務(wù)-springcloud-springboot-Kubernetes-k8s集群-Kubesphere實(shí)現(xiàn)DevOps流水線(xiàn)-CI/CD-SonarQube- Jenkins

    【業(yè)務(wù)功能115】微服務(wù)-springcloud-springboot-Kubernetes-k8s集群-Kubesphere實(shí)現(xiàn)DevOps流水線(xiàn)-CI/CD-SonarQube- Jenkins

    dev 怎么開(kāi)發(fā) ops 怎么運(yùn)維 參考項(xiàng)目鏈接:https://github.com/kubesphere/devops-maven-sample 持續(xù)集成是指軟件個(gè)人的部分向軟件整體部分交付,頻繁進(jìn)行集成以便更快地發(fā)現(xiàn)其中錯(cuò)誤。 CI需要具備這些: 全面的自動(dòng)化測(cè)試 這是實(shí)踐持續(xù)集成持續(xù)部署的基礎(chǔ),同時(shí),選擇合適的自動(dòng)化測(cè)

    2024年02月04日
    瀏覽(43)
  • K8S部署jenkins

    K8S部署jenkins

    NFS服務(wù)器:1xx.xxx.xxx.229 K8Smaster:1xx.xxx.xxx.221 k8Snode1: 1xx.xxx.xxx.228 (宿主機(jī)) 需要將jenkins的配置目錄掛載到NFS中,如果沒(méi)安裝可以參考之前的文檔。 注意:jenkins2.372默認(rèn)安裝jdk11版本,沒(méi)有mvn和jdk8,如果有需求就需要將宿主機(jī)的mvn、jdk、環(huán)境變量、都掛載到容器內(nèi)。 jenki

    2024年02月14日
    瀏覽(21)
  • k8s 部署 jenkins

    一.前提條件 1.安裝helm 二.安裝harbor 1.添加harbor helm倉(cāng)庫(kù) helm repo add jenkins https://charts.jenkins.io 2.更新倉(cāng)庫(kù) helm repo update

    2023年04月08日
    瀏覽(18)
  • k8s 部署Jenkins項(xiàng)目

    k8s 部署Jenkins項(xiàng)目

    要求:當(dāng)前集群配置了storageClass,并已指定默認(rèn)的storageClass,一般情況下,創(chuàng)建的storageClass即為默認(rèn)類(lèi) 指定默認(rèn)storageClass的方式 1.1 部署helm 1.2 部署jenkins 1.3 檢查 jenkins 1.4 配置訪(fǎng)問(wèn) 3.1 準(zhǔn)備ruoyi數(shù)據(jù) 3.2 準(zhǔn)備k8s證書(shū) 3.3 準(zhǔn)備maven配置文件 3.4 配置釘釘插件 在系統(tǒng)管理的下方有未

    2024年01月21日
    瀏覽(57)
  • jenkins部署K8S應(yīng)用

    jenkins部署K8S應(yīng)用

    ? PS:這種方式是jenkins獨(dú)立,然后slave已容器方式運(yùn)行,master是獨(dú)立出來(lái)的,減少運(yùn)維成本,還能提高效率。 如果使用master部署需要把master加入k8s集群 jenkins安裝不贅述 在k8s-master節(jié)點(diǎn)上生成對(duì)應(yīng)的證書(shū) 在jenkins里添加憑據(jù) 憑據(jù)類(lèi)型選Certificate 上傳cert.pfx,輸入剛才設(shè)置的密碼

    2024年02月04日
    瀏覽(24)
  • Jenkins使用k8s部署應(yīng)用

    Jenkins使用k8s部署應(yīng)用

    1、jenkins在k8s內(nèi)部署(請(qǐng)參考其他人的文章) 2、jenkins安裝kubenents相關(guān)插件 3、配置k8s云 ????????非常重要,目的是實(shí)現(xiàn)jenkins可以遠(yuǎn)程調(diào)用k8s進(jìn)行部署,并可實(shí)現(xiàn)安裝jenkins-slave進(jìn)行構(gòu)建。使得不再依賴(lài)jenkins單機(jī)能力進(jìn)行構(gòu)建,比較適合一定規(guī)模的公司。 ?插件安裝后,打開(kāi)

    2024年02月15日
    瀏覽(46)
  • Kubernetes(K8S)集群部署

    Kubernetes(K8S)集群部署

    目錄 一、創(chuàng)建3臺(tái)虛擬機(jī) 二、為每臺(tái)虛擬機(jī)安裝Docker 三、安裝kubelet 3.1 安裝要求 3.2 為每臺(tái)服務(wù)器完成前置設(shè)置 3.3 為每臺(tái)服務(wù)器安裝kubelet、kubeadm、kubectl 四、使用kubeadm引導(dǎo)集群 4.1 master服務(wù)器 4.2 node1、node2服務(wù)器 4.3 初始化主節(jié)點(diǎn) 4.4 work節(jié)點(diǎn)加入集群 五、token過(guò)期怎么辦?

    2024年02月07日
    瀏覽(134)
  • 【K8S專(zhuān)題】八、Jenkins 自動(dòng)打包部署配置

    【K8S專(zhuān)題】八、Jenkins 自動(dòng)打包部署配置

    ??項(xiàng)目部署有多種方式,從最原始的可運(yùn)行 jar 包直接部署到 JDK 環(huán)境下運(yùn)行,到將可運(yùn)行的 jar 包放到 docker 容器中運(yùn)行,再到現(xiàn)在比較流行的把可運(yùn)行的 jar 包和 docker 放到 k8s 的 pod 環(huán)境中運(yùn)行。每一種新的部署方式都是對(duì)原有部署方式的改進(jìn)和優(yōu)化,這里不著重介紹每種

    2024年02月15日
    瀏覽(22)
  • Jenkins構(gòu)建項(xiàng)目并部署到K8S實(shí)踐

    Jenkins構(gòu)建項(xiàng)目并部署到K8S實(shí)踐

    本次實(shí)踐使用gitee上的開(kāi)源項(xiàng)目悟空CRM9.0進(jìn)行構(gòu)建并部署到k8S中 悟空CRM9.0項(xiàng)目簡(jiǎn)介: 悟空CRM-基于jfinal+vue+ElementUI的前后端分離CRM系統(tǒng)。 項(xiàng)目gitee地址:https://gitee.com/wukongcrm/72crm-java.git 軟件 版本 IP 備注 K8S 1.26.x 192.168.1.124 192.168.1.124為K8S集群master01節(jié)點(diǎn)IP地址 Harbor 2.6.2 192.168.1.

    2024年02月20日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包