DevOps 之路

2020-05-16 21:58:06 浏览数 (1)

本日共賞

  • 系統架構
  • 部署 Jenkins

希望你知道

  • DevOps
  • CI/CD
  • 在 GCP 中建立 k8s 叢集

既然這次是參加 DevOps 組別,勢必要與 DevOps 做個完美的結合。我們在過去的二十幾天內,一起探討了 k8s 的概念、各種不同的物件以及欣賞了各種不同的應用。最終,當然是希望將 k8s 套用到日常運作的系統內。在 GCP 中建立 k8s 叢集 已經介紹過如何在 GCP 平台上建立 k8s 叢集,因此利用這最後的時間,我們就以 GCP 當作例子示範來欣賞一下如何建立一條自動部署的 Pipeline。

系統架構

讓我們先看一下整個系統的流程架構圖

  • 開發者:就是你拉!你可以利用不同的程式語言,無論是 Java, Go, PHP, Node, Python, ... 等等,開發你的應用程式。
  • Code Repository:當你在開發過程中,可以把開發紀錄存放在 Code Repository。無論是追縱、維護程式都有很多好處。常見的有 github, bitbucket,... 等等。

我們這次使用 github

  • CI/CD 工具:當程式撰寫完成並上傳到 Code Repository 後,就輪到 CI/CD 工具上場了,透過適當的設定,這些工具會在 Repository 發生變化時,嘗試編譯、執行、測試或部署新版本的應用程式,常見的工具有 Jenkins, Drone, CircleCI, ... 等等。

我們這次使用 Jenkins

  • Container Image Repository:用來放置 k8s 需要使用的映像檔,如果不介意公開的話,可以直接使用 Docker Hub,我們使用 GCP 提供的 Container Registry 服務當作本次的示範。
  • k8s 開發測試環境:供內部測試使用,可與正式環境並存在 k8s 叢集中。

透過命名空間,我們可以在 k8s 叢集中切開正式環境與測試環境。好處是兩個環境不會互相干擾,但卻可以在相同叢集下運作。

  • k8s 正式環境:提供對外的服務,可供一般使用者存取。

雖然上圖看起來正式與測試環境不同,但這裡提到的測試環境與正式環境是同時存在同一個 k8s 叢集中,當然如果需要,你想要分開兩個叢集也可以。

部署 Jenkins

Google 有提供一個範例可供下載,首先打開 Cloud Shell 下載

0 人点赞