

-
Kubernetes:一個開源的,用於管理雲平臺中多個主機上的容器化的應用,Kubernetes的標的是讓部署容器化的應用簡單並且高效,Kubernetes提供了應用部署,規劃,更新,維護的一種機制。
-
Nginx:一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。
-
Harbor:Harbor是一個用於儲存和分發Docker映象的企業級Registry伺服器,透過新增一些企業必需的功能特性,例如安全、標識和管理等,擴充套件了開源Docker Distribution。
-
Jenkins:一個開源軟體專案,是基於Java開發的一種持續整合工具,用於監控持續重覆的工作,旨在提供一個開放易用的軟體平臺,使軟體的持續整合變成可能。
-
Filebeats:是一個日誌檔案託運工具,在你的伺服器上安裝客戶端後,Filebeat會監控日誌目錄或者指定的日誌檔案,追蹤讀取這些檔案(追蹤檔案的變化,不停的讀),並且轉發這些資訊到Elasticsearch或者Logstarsh中存放。
-
Elasticsearch:是一個基於Lucene構建的開源、分散式、RESTful介面的全文搜尋引擎。
-
Kibana是一個開源的分析和視覺化平臺,設計用於和Elasticsearch一起工作來搜尋,檢視,並和儲存在Elasticsearch索引中的資料進行互動。
-
GitLab自託管的Git專案倉庫,可透過Web介面進行訪問公開的或者私人專案(這裡的GitLab並不涉及到開發的CI方案,主要為運維的CD方案)。
-
Weave Scope Docker和Kubernetes視覺化監控工具。Scope提供了至上而下的叢集基礎設施和應用的完整檢視,使用者可以輕鬆對分散式的容器化應用進行實時監控和問題診斷。




-
Jenkins構建時,需要傳入程式版本號,構建型別(釋出還是刪除),程式型別(測試還是正式)。
-
CD的全過程由位於Jenkins上的指令碼執行
-
開發部將對應版本的ROOT.war傳入Jenkins指定目錄
-
下拉配置(包含config,hosts,dockerfile,k8syaml等等)
-
由Dockerfile生成Docker容器,並將root.war,hosts與配置檔案內建入容器中
-
將Docker容器打包並推送入Registry
-
透過kubectl透過k8syaml更新/生成新的服務
-
/data└── k8s-cd-config└── test.gyyx.cn├── develop│ └── v1.2.0-92-3fdd00f.yaml├─develop.yaml -> /data/k8s-cd-config/test.gyyx.cn/develop/v1.2.0-92-3fdd00f.yaml├── master│ └── v1.2.0-91-746284e.yaml└──master.yaml->/data/k8s-cd-config/test.gyyx.cn/master/v1.2.0-91-746284e.yaml
/data├── filebeat├── dockerlibs└── nodelogs├── develop│ ├── accesslogs│ │ └── test.gyyx.cn│ │ └── test-gyyx-cn-76d9d8d5b5-hdnql│ │ └── localhost_access_log.2018-12-24.txt│ ├── devlogs│ │ └── test.gyyx.cn│ │ └── test-gyyx-cn-76d9d8d5b5-hdnql│ │ └── interface.datareport.wyx.cn│ │ ├── error.log│ │ ├── info.log│ │ └── trace.log│ └── tomcatlogs│ └── test.gyyx.cn│ └── test-gyyx-cn-76d9d8d5b5-hdnql│ ├── catalina.2018-12-24.log│ ├── host-manager.2018-12-24.log│ ├── localhost.2018-12-24.log│ └── manager.2018-12-24.log└── master├── accesslogs│ └── test.gyyx.cn│ └── test-gyyx-cn-895cc5994-sx7gk│ └── localhost_access_log.2018-12-24.txt├── devlogs│ └── test.gyyx.cn│ └── test-gyyx-cn-895cc5994-sx7gk└── tomcatlogs└── test.gyyx.cn└── test-gyyx-cn-895cc5994-sx7gk├── catalina.2018-12-24.log├── host-manager.2018-12-24.log├── localhost.2018-12-24.log└── manager.2018-12-24.log


.├── dockerlibs├── thinbackups└── gitlab-files│ └── gyyx.cn│ └── test.gyyx.cn└── jks-cd-config└── test.gyyx.cn└── v1.2.0├── develop│ └── 101_138a37a│ ├── …│ └── v1.2.0-101-138a37a.yaml├── master│ └── 102_4f228a7│ ├── …│ └── v1.2.0-102-4f228a7.yaml└── ROOT.war


curl -X POST http://jenkinsapi.com/job/域名/build \–user admin:11b80a61d260aa41eb4a43ef0115bcbb26 \–data-urlencode json=’{“parameter”: [{“name”:”VERSION”, “value”:”v1.2.0”}, {“name”:”TYPE”, “value”:”apply”}, {“name”:”BRANCH”, “value”:”develop”}]}’



├── catalina.sh #tomcat配置檔案├── config #程式配置檔案,此檔案夾會替換掉容器內的/data/conf│ └── hello.conf├── deployment.yaml #k8s deploymen配置├── dockerfile #docker映象生成檔案├── hosts #docker映象的hosts,此檔案將合併到deployment.yaml├── service.yaml #k8s service配置└── tomcat #tomcat配置檔案├── Catalina│ └── localhost├── catalina.policy├── catalina.properties├── context.xml├── logging.properties├── server.xml├── tomcat-users.xml└── web.xml
-
/data/nodelogs//accesslogs///
-
/data/nodelogs//devlogs///
-
/data/nodelogs//tomcatlogs///
processors:- dissect:tokenizer: "%{?key1}/%{?key2}/%{?key3}/%{wtype}/%{ltype}/%{domain}/%{?key7}/%{?key8}"field: "source"target_prefix: "gy"




知識星球