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

基于jenkins+k8s實(shí)現(xiàn)devops

這篇具有很好參考價(jià)值的文章主要介紹了基于jenkins+k8s實(shí)現(xiàn)devops。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、背景

由于jenkins運(yùn)行在k8s上能夠更好的利用動(dòng)態(tài)agent進(jìn)行構(gòu)建。所以寫了個(gè)部署教程,親測(cè)無坑

2、部署

1、創(chuàng)建ns
kubectl create namespace devops

2、kubectl apply -f jenkins.yml

apiVersion: v1
kind: ServiceAccount
metadata:
  name: jenkins
  namespace: devops
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: jenkins
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: devops
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: jenkins
subjects:
  - kind: ServiceAccount
    name: jenkins
    namespace: devops
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins
  namespace: devops
spec:
  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: jenkinshome
              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
          readinessProbe:
            httpGet:
              path: /login
              port: 8080
            initialDelaySeconds: 60
            timeoutSeconds: 5
            failureThreshold: 12
          volumeMounts:
            - name: jenkinshome
              mountPath: /var/jenkins_home
            - name: localtime
              mountPath: /etc/localtime  
      volumes:
        - name: jenkinshome
          hostPath:
            path: /opt/jenkins/jenkins_data
        - name: localtime
          hostPath:
            path: /etc/localtime
---
apiVersion: v1
kind: Service
metadata:
  name: jenkins
  namespace: devops
  labels:
    app: jenkins
spec:
  selector:
    app: jenkins
  ports:
    - name: web
      port: 8080
      targetPort: web
    - name: agent
      port: 50000
      targetPort: agent
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: jenkins
  namespace: devops
spec:
  ingressClassName: nginx
  rules:
    - host: jenkins.k8s.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: jenkins
                port:
                  name: web


注意:鏡像建議使用最新版本,因?yàn)閖enkin平臺(tái)默認(rèn)提供了最新的插件,且無法選擇版本,所以如果jenkins版本過低會(huì)導(dǎo)致插件不兼容問題

3、本地電腦配置host解析后,就可以用域名訪問

4、查看pod日志獲取初始化密碼,也可以查看/opt/jenkins/jenkins_data/secrets/initialAdminPassword

5、安裝必要插件
中文插件: Localization: Chinese
pipeline插件:Pipeline
k8s插件: Kubernetes
代碼庫管理插件:Git

6、配置k8s連接信息
k8s部署jenkins,devops,k8s,kubernetes,jenkins,devops,ci/cd
k8s部署jenkins,devops,k8s,kubernetes,jenkins,devops,ci/cd
k8s部署jenkins,devops,k8s,kubernetes,jenkins,devops,ci/cd

填寫 以下內(nèi)容 ,然后點(diǎn)擊測(cè)試。
k8s地址 :https://kubernetes.default.svc.cluster.local
命名空間:devops
jenkins地址:http://jenkins.devops.svc.cluster.local:8080

由于之前部署的時(shí)候已經(jīng)給jenkins用戶訪問k8s 的devops命名空間的權(quán)限,所以這里不需要配置kubeconfig認(rèn)證也可直接訪問

3、編寫一條pipeline

這里用一個(gè)java項(xiàng)目的ci過程作為案例文章來源地址http://www.zghlxwxcb.cn/news/detail-741484.html

def createVersion() {
    // 定義一個(gè)版本號(hào)作為當(dāng)次構(gòu)建的版本,輸出結(jié)果 20191210175842_69
    return new Date().format('yyyyMMddHHmmss') + "_${env.BUILD_ID}"
}

pipeline{
    agent{
        kubernetes{
          defaultContainer 'maven'
          yaml '''
apiVersion: v1
kind: Pod
spec:
  containers:
    - name: maven
      image: maven:3.8.1-jdk-8
      command: ["sleep"]
      args: ["99d"]
    - name: docker
      image: docker
      command: ["sleep"]
      args: ["99d"]
      volumeMounts:
        - mountPath: /var/run/docker.sock
          name: docker-socket
  volumes:
    - name: docker-socket
      hostPath:
        path: /var/run/docker.sock
'''
        }
    }
    environment {
        tag = createVersion()
    }
    stages{
        stage("pull code"){
          steps{
            script{
              git 'https://gitee.com/uuei/java-devops-demo.git'
            }
          }
        }
        stage("mvn"){
          steps{
            script{
              sh 'mvn clean package'
            }
            container('docker') {
              script {
              sh 'docker build -t java-demo:${tag} .'
            }
        }
          }
        }
    }
}

到了這里,關(guān)于基于jenkins+k8s實(shí)現(xiàn)devops的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(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)文章

  • Jenkins流水線整合k8s實(shí)現(xiàn)代碼自動(dòng)集成和部署

    Jenkins流水線整合k8s實(shí)現(xiàn)代碼自動(dòng)集成和部署

    1、安裝好k8s集群 這里先要搭建好一個(gè)K8s集群,筆者這邊就采用使用了一個(gè)一主一叢的k8s集群,k8s集群的版本使用1.19.5版本,服務(wù)器的配置:2核4G,操作系統(tǒng): CentOS Linux release 7.9.2009 (Core) 主機(jī)名???????? ip k8smaster 192.168.19.8 k8sworker???????? 192.168.19.9 具體的安裝步驟可以

    2024年02月05日
    瀏覽(52)
  • 使用 Jenkins、Gitlab、Harbor、Helm、k8s 來實(shí)現(xiàn)流水線作業(yè)

    使用 Jenkins、Gitlab、Harbor、Helm、k8s 來實(shí)現(xiàn)流水線作業(yè)

    使用 Jenkins、Gitlab、Harbor、Helm、Kubernetes 來實(shí)現(xiàn)一個(gè)完整的持續(xù)集成和持續(xù)部署的流水線作業(yè) 開發(fā)人員提交代碼到 Gitlab 代碼倉庫 通過 Gitlab 配置的 Jenkins Webhook 觸發(fā) Pipeline 自動(dòng)構(gòu)建 Jenkins 觸發(fā)構(gòu)建構(gòu)建任務(wù),根據(jù) Pipeline 腳本定義分步驟構(gòu)建 先進(jìn)行代碼靜態(tài)分析,單元測(cè)試

    2024年04月27日
    瀏覽(29)
  • 【Kubernetes 企業(yè)項(xiàng)目實(shí)戰(zhàn)】06、基于 Jenkins+K8s 構(gòu)建 DevOps 自動(dòng)化運(yùn)維管理平臺(tái)(中)

    【Kubernetes 企業(yè)項(xiàng)目實(shí)戰(zhàn)】06、基于 Jenkins+K8s 構(gòu)建 DevOps 自動(dòng)化運(yùn)維管理平臺(tái)(中)

    目錄 一、基于 Jenkins+k8s+Git+Docker Hub 等技術(shù)鏈構(gòu)建企業(yè)級(jí) DevOps 容器云平臺(tái) 1.1 安裝 Jenkins 1.1.1 安裝 nfs 服務(wù) 1.1.2 在 kubernetes 中部署 jenkins 1.2 配置 Jenkins ?1.2.1?獲取管理員密碼 1.2.2?安裝插件 1.2.3?創(chuàng)建第一個(gè)管理員用戶 1.3?測(cè)試 jenkins 的 CI/CD 1.3.1 在 Jenkins 中安裝 kubernetes 插件

    2024年01月16日
    瀏覽(67)
  • 基于SNAT+DNAT發(fā)布內(nèi)網(wǎng)K8S及Jenkins+gitlab+Harbor模擬CI/CD的綜合項(xiàng)目

    基于SNAT+DNAT發(fā)布內(nèi)網(wǎng)K8S及Jenkins+gitlab+Harbor模擬CI/CD的綜合項(xiàng)目

    目錄 項(xiàng)目名稱 項(xiàng)目架構(gòu)圖 項(xiàng)目環(huán)境 項(xiàng)目概述 項(xiàng)目準(zhǔn)備 項(xiàng)目步驟 一、修改每臺(tái)主機(jī)的ip地址,同時(shí)設(shè)置永久關(guān)閉防火墻和selinux,修改好主機(jī)名,在firewalld服務(wù)器上開啟路由功能并配置snat策略。 1. 在firewalld服務(wù)器上配置ip地址、設(shè)置永久關(guān)閉防火墻和selinux,并修改好主機(jī)名

    2024年02月09日
    瀏覽(55)
  • K8S部署jenkins

    K8S部署jenkins

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

    2024年02月14日
    瀏覽(21)
  • k8s安裝Jenkins

    k8s安裝Jenkins

    目錄 ?編輯 一、環(huán)境準(zhǔn)備 1.1 環(huán)境說明 二、安裝nfs 2.1 安裝NFS 2.2 創(chuàng)建NFS共享文件夾 2.3 配置共享文件夾 2.4 使配置生效 2.5 查看所有共享目錄 ?2.6 啟動(dòng)nfs 2.7 其他節(jié)點(diǎn)安裝nfs-utils 三、創(chuàng)建PVC卷 3.1 創(chuàng)建namespace 3.2?創(chuàng)建nfs 客戶端sa授權(quán) 3.3?創(chuàng)建nfs 客戶端 3.4?創(chuàng)建StorageClass 3.5?創(chuàng)

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

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

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

    k8s 部署Jenkins項(xiàng)目

    要求:當(dāng)前集群配置了storageClass,并已指定默認(rèn)的storageClass,一般情況下,創(chuàng)建的storageClass即為默認(rèn)類 指定默認(rèn)storageClass的方式 1.1 部署helm 1.2 部署jenkins 1.3 檢查 jenkins 1.4 配置訪問 3.1 準(zhǔn)備ruoyi數(shù)據(jù) 3.2 準(zhǔn)備k8s證書 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ú)立出來的,減少運(yùn)維成本,還能提高效率。 如果使用master部署需要把master加入k8s集群 jenkins安裝不贅述 在k8s-master節(jié)點(diǎn)上生成對(duì)應(yīng)的證書 在jenkins里添加憑據(jù) 憑據(jù)類型選Certificate 上傳cert.pfx,輸入剛才設(shè)置的密碼

    2024年02月04日
    瀏覽(24)
  • k8s的jenkins部署java項(xiàng)目到k8s集群cicd持續(xù)集成

    k8s的jenkins部署java項(xiàng)目到k8s集群cicd持續(xù)集成

    k8s1.16.0-k8s的jenkins部署java項(xiàng)目到k8s集群cicd(ci成,cd手動(dòng)部署的) 注意: 本文檔只是實(shí)現(xiàn)了ci,cd是通過ci生成的鏡像,再手工再k8s-master執(zhí)行的部署(只因pod部署的jenkins連接k8s的認(rèn)證不知怎么操作,若jenkins是單獨(dú)部署在k8s-master機(jī)器上,能直接在master執(zhí)行kubectl命令就沒這個(gè)問題了

    2024年02月03日
    瀏覽(37)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包