kubernetes實踐之二十九:Kubernetes+Harbor+Gitlab+Jenkins+Maven DevOps

百聯達發表於2018-05-02
一:流程結構

說明:

1. 使用者向Gitlab提交程式碼,程式碼中包含 Dockerfile檔案。

2.Jenkins監聽Gitlab程式碼庫的推送和變更事件

3.Jenkins呼叫maven外掛對原始碼進行編譯打包

4.Jenkins呼叫docker工具根據Dockerfile檔案生成映象,並推送映象到Harbor倉庫

5.Jenkins透過SSH遠端呼叫Kubernetes叢集的master節點,更新Pod的模板YAML檔案,呼叫kubectl命令進行釋出操作

6.Kubernetes叢集的Node 節點從Harbor倉庫,拉取映象,啟動Pod和應用容器。


二:實施步驟

1.Docker+Gitlab+Jenkins+Maven程式碼持續整合與自動部署
請參照之前的博文 http://blog.itpub.net/28624388/viewspace-2151638/

2.使用Harbor作為私有映象倉庫
請參照之前的博文 http://blog.itpub.net/28624388/viewspace-2153568/

3.kubernetes整合(以應用desktop為例

a.Jenkins中安裝SSH外掛

b.Jenkins中建立Credentials ssh


c.系統關聯-->系統配置-->ssh remote hosts配置


d.在專案配置的最後,增加ssh remote命令呼叫的指令碼


desktop-ds.yaml 檔案如下

點選(此處)摺疊或開啟

  1. apiVersion: extensions/v1beta1
  2. kind: DaemonSet
  3. metadata:
  4.   name: desktop
  5.   labels:
  6.     app: desktop
  7. spec:
  8.     selector:
  9.        matchLabels:
  10.             app: desktop
  11.     template:
  12.       metadata:
  13.           labels:
  14.             app: desktop
  15.       spec:
  16.          containers:
  17.          - name: desktop
  18.            image: 120.79.156.135/desktop/tomcat:desktop
  19.            volumeMounts:
  20.            - name: jdkdir
  21.              mountPath: /usr/local/jdk
  22.            - name: uploaddir
  23.              mountPath: /mnt/upload
  24.            ports:
  25.            - containerPort: 8080
  26.          imagePullSecrets:
  27.          - name: registry-secret
  28.          volumes:
  29.          - name: jdkdir
  30.            hostPath:
  31.               path: /mnt/devops/jdk1.8
  32.          - name: uploaddir
  33.            hostPath:
  34.              path: /mnt/upload

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2153655/,如需轉載,請註明出處,否則將追究法律責任。

相關文章