• <menu id="sssag"></menu>
  • <menu id="sssag"></menu>
  • 基于Kubernetes/K8S構建Jenkins持續集成平臺(下)

    基于Kubernetes/K8S構建Jenkins持續集成平臺(下)

     

    Jenkins-Master-Slave架構圖回顧:

     

     

    安裝和配置NFS

    NFS簡介

    NFS(Network File System),它最大的功能就是可以通過網絡,讓不同的機器、不同的操作系統可以共享彼此的文件。我們可以利用NFS共享Jenkins運行的配置文件、Maven的倉庫依賴文件等

    NFS安裝

    我們把NFS服務器安裝在20.0.0.10機器上

    安裝NFS服務(在所有K8S的節點都需要安裝)

    yum install -y nfs-utils
    

      

    創建共享目錄

    mkdir -p /opt/nfs/jenkins
    
    vi /etc/exports	#編寫NFS的共享配置
    
    #內容如下:		
    /opt/nfs/jenkins	*(rw,no_root_squash)	*代表對所有IP都開放此目錄,rw是讀寫
    

      

    啟動服務

     

    systemctl enable nfs	開機啟動
    systemctl start nfs	啟動
    

     

      

    查看NFS共享目錄

     

    showmount -e 20.0.0.10
    

      

     

    Kubernetes安裝Jenkins-Master

    創建NFS client provisioner

    nfs-client-provisioner 是一個Kubernetes的簡易NFS的外部provisioner,本身不提供NFS,需要現有的NFS服務器提供存儲。

     

    上傳nfs-client-provisioner構建文件

    其中注意修改deployment.yaml,使用之前配置NFS服務器和目錄

     

     

     

     

     

    構建nfs-client-provisionerpod資源

     

    cd nfs-client 
    kubectl create -f .
    

      

    查看pod是否創建成功

    kubectl get pods
    

      

    Jenkins-Master

    上傳Jenkins-Master構建文件

     

     

     

    創建kube-ops的namespace

    因為我們把Jenkins-Master的pod放到kube-ops下

    kubectl create namespace kube-ops
    

      

    構建Jenkins-Masterpod資源

     

    cd jenkins-master
    kubectl create -f .
    

     

      

    查看pod是否創建成功

    kubectl get pods -n kube-ops
    

      

    查看信息,并訪問

    查看Pod運行在那個Node上

    kubectl describe pods -n kube-ops
    

     

    查看分配的端口

     

    然后去訪問:http://20.0.0.70:31087/ 20.0.0.70k8s-node1IP

     

     

     

    看到這個頁面就很簡單了!

    找到密鑰復制進去登錄:

     

     

    進去后就創建一個管理員用戶都是老生常談的操作了就不多說了

    然后就實現的界面了!

     

    然后繼續下面的操作!

     

     

    設置插件下載地址:

    cd /opt/nfs/jenkins/kube-ops-jenkins-home-jenkins-0-pvc-e90ef63e-5bf2-4747-a9b3-e8fe13ae21cf/updates  
    sed -i 's/http:\/\/updates.jenkins- ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
    

    Manage Plugins點擊Advanced,把Update Site改為

    國內插件下載地址https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

     

     

    先安裝基本的插件:“

    1. Localization:Chinese
    2. Git
    3. Pipeline
    4. Extended Choice Parameter

    還有一個jenkins與k8s整合的插件:

    1. kubernetes

     

    重啟Jenkins

     

     

     

    實現JenkinsKubernetes整合

    系統管理->系統配置->云->新建云->Kubernetes

     

     

    kubernetes 地 址 采 用 了 kube 的 服 務 器 發 現 :https://kubernetes.default.svc.cluster.local 
    
    namespace填kube-ops,然后點擊Test Connection,如果出現 Connection test successful 的提示信息證明 Jenkins 已經可以和 Kubernetes 系統正常通信
    
    Jenkins URL 地址:http://jenkins.kube-ops.svc.cluster.local:8080
    

      

    構建Jenkins-Slave自定義鏡像

    Jenkins-Master在構建Job的時候,Kubernetes會創建Jenkins-Slave的Pod來完成Job的構建。我們選擇  運行Jenkins-Slave的鏡像為官方推薦鏡像:jenkins/jnlp-slave:latest,但是這個鏡像里面并沒有Maven    環境,為了方便使用,我們需要自定義一個新的鏡像:

    準備材料:

    Docker?le文件內容如下:

     

    FROM jenkins/jnlp-slave:latest
    
    MAINTAINER lvbu
    
    # 切換到 root 賬戶進行操作
    USER root
    
    # 安裝 maven
    COPY apache-maven-3.6.2-bin.tar.gz .
    
    RUN tar -zxf apache-maven-3.6.2-bin.tar.gz && \
        mv apache-maven-3.6.2 /usr/local && \
        rm -f apache-maven-3.6.2-bin.tar.gz && \
        ln -s /usr/local/apache-maven-3.6.2/bin/mvn /usr/bin/mvn && \
        ln -s /usr/local/apache-maven-3.6.2 /usr/local/apache-maven && \
        mkdir -p /usr/local/apache-maven/repo
    
    COPY settings.xml /usr/local/apache-maven/conf/settings.xml
    
    USER jenkins
    

     

      

     

    然后構建鏡像:然后查看

    docker build -t jenkins-slave-maven:latest .
    

     

    下面要做的就是修改指向harbor:K8s三臺都要做

     

    然后k8s master登錄harbor:

    docker login -u admin -p Harbor12345 20.0.0.50:85
    docker tag jenkins-slave-maven:latest 20.0.0.50:85/library/jenkins-slave-maven:latest
    docker push 20.0.0.50:85/library/jenkins-slave-maven:latest
    

     

     

     

    測試Jenkins-Slave是否可以創建

    創建一個Jenkins流水線項目

     

    添加憑據:

     

    編寫Pipeline,從GItlab拉取代碼(使用http方式)使用流水線片段生成器 

    def git_address = "http://20.0.0.20:82/root/tensquare_back.git" 
    def git_auth = "904eff5d-41c8-44ad-ba24-7f539a0edb96"
    
    //創建一個Pod的模板,label為jenkins-slave
    podTemplate(label: 'jenkins-slave', cloud: 'kubernetes', containers: [ 
        containerTemplate(
            name: 'jnlp',
            image: "20.0.0.50:85/library/jenkins-slave-maven:latest"
        )
      ]
    )
    {
        //引用jenkins-slave的pod模塊來構建Jenkins-Slave的pod 
        node("jenkins-slave"){
            stage('拉取代碼'){
                checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_address}"]]])
            }
        }
    }
    

     

      

    然后開始構建:

     

     

     

    在構建前再開一臺jenkins去看節點列表,初始狀態是,一個主節點!然后構建的時候刷新會看到從節點上線構建,構建完就會自動下線釋放資源

    主節點不參與構建

     

     

     

    posted @ 2022-03-08 22:54  隱姓埋名4869  閱讀(219)  評論(0編輯  收藏  舉報
    国产在线码观看超清无码视频,人妻精品动漫H无码,十大看黄台高清视频,国产在线无码视频一区二区三区,国产男女乱婬真视频免费,免费看女人的隐私超爽,狠狠色狠狠色综合久久蜜芽