Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create a Kubernetes cluster
/ 20
Configure and Install Jenkins
/ 20
Create the production and canary deployments
/ 30
Build for the 'new-feature' branch
/ 10
Deploying a canary release
/ 10
Deploying to production
/ 10
Create a Kubernetes cluster
/ 20
Configure and Install Jenkins
/ 20
Create the production and canary deployments
/ 30
Build for the 'new-feature' branch
/ 10
Deploying a canary release
/ 10
Deploying to production
/ 10
本實驗室將說明如何在 Kubernetes Engine 中,使用 Jenkins 設定持續推送軟體更新管道。開發人員若經常需要將程式碼整合至共用存放區,通常會選用 Jenkins 這款自動化伺服器。您在本實驗室建構的解決方案,架構會與下圖類似:
請前往 Cloud Architecture Center,查看 Jenkins 在 Kubernetes Engine 的運作方式,進一步瞭解如何在 Kubernetes 執行 Jenkins。
您會在本實驗室中完成下列工作,瞭解如何在 Kubernetes 執行 Jenkins:
本實驗室屬於進階難度,開始前建議至少須熟悉殼層程式設計、Kubernetes 和 Jenkins 的基本概念。下列幾個實驗室可協助您快速掌握相關知識:
掌握先備知識後,請向下捲動,進一步瞭解 Kubernetes、Jenkins 和持續推送軟體更新。
Kubernetes Engine 是 Google Cloud 的託管版 Kubernetes,這套叢集管理與自動化調度管理系統專為容器設計,功能非常強大。Kubernetes 是一個開放原始碼專案,能在多種不同的環境中運作,包括筆記型電腦、高可用性的多節點叢集、虛擬機器和裸機等。如先前所述,Kubernetes 應用程式是以容器為建構基礎,這是一種輕量型應用程式,內含運作所需的所有依附元件和程式庫。這種基礎架構可確保 Kubernetes 應用程式的高可用性和安全性,部署也十分快速,是雲端開發人員理想的框架選擇。
Jenkins 是一款開放原始碼的自動化伺服器,可靈活地自動調度並管理建構、測試和部署管道。開發人員能運用 Jenkins 快速疊代專案,不必擔心持續推送軟體更新可能造成的負擔。
當您需要設定持續推送軟體更新 (CD) 管道時,可選擇將 Jenkins 部署至 Kubernetes Engine,這種做法比標準 VM 部署方式的好處更多。
如果建構程序使用容器,同一個虛擬主機便可橫跨多個作業系統執行工作。Kubernetes Engine 會提供暫時性的建構執行器,只有在建構期間才會使用,這樣資源就能留給批次處理等其他叢集工作。此外,這類執行器還有另一項優點,就是「速度快」,能在幾秒內完成啟動。
Kubernetes Engine 還預先搭載 Google 的全域負載平衡器,可自動將網站流量轉送至執行個體。該負載平衡器會處理 SSL 終止作業,並使用以 Google 骨幹網路設定的全球 IP 位址。如果搭配網站前端,使用者就能透過最快的路徑連至應用程式執行個體。
對於 Kubernetes、Jenkins 及兩者在 CD 管道的互動方式,您已有初步的瞭解,是時候開始建構了!
請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
為了順利完成這個實驗室,請先確認:
點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。
接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
如有必要,請將下方的 Username 貼到「登入」對話方塊。
您也可以在「Lab Details」窗格找到 Username。
點選「下一步」。
複製下方的 Password,並貼到「歡迎使用」對話方塊。
您也可以在「Lab Details」窗格找到 Password。
點選「下一步」。
按過後續的所有頁面:
Google Cloud 控制台稍後會在這個分頁開啟。
Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
點按 Google Cloud 控制台頂端的「啟用 Cloud Shell」圖示 。
系統顯示視窗時,請按照下列步驟操作:
連線建立完成即代表已通過驗證,而且專案已設為您的 Project_ID:
gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。
輸出內容:
輸出內容:
gcloud 的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南。
在這項工作中,您將下載本實驗室要用的原始碼。
建立 Kubernetes 叢集並啟用 Jenkins 來存取 GitHub 存放區及 Google Artifact Registry。
系統最多可能需要 5 分鐘才能完成佈建。指定額外範圍的目的是允許 Jenkins 存取 GitHub 存放區及 Google Artifact Registry。
點選「Check my progress」,確認工作已完成。如果已成功建立 Kubernetes 叢集,您將會看見評估分數。
Helm 是套件管理工具,能協助您輕鬆設定及部署 Kubernetes 應用程式。安裝 Jenkins 後,便可設定 CI/CD 管道。
在這項工作中,您會使用 Helm 從資訊套件存放區安裝 Jenkins。
安裝 Jenkins 時,可使用 values 做為範本,提供設定所需的值。
您將透過 values 檔案自動設定 Kubernetes Cloud,並新增下列必要的外掛程式:
這樣 Jenkins 就能連線至您的叢集和 Google Cloud 專案。
這個指令會在幾分鐘內執行完畢。
點選「Check my progress」,確認工作已完成。如果已成功設定 Jenkins 資訊套件,您將會看見評估分數。
Running 狀態,且容器處於 READY 狀態:輸出內容範例:
輸出內容應如下所示:
輸出內容範例:
本實驗室中您使用了 Kubernetes 外掛程式,因此系統在 Jenkins Master 要求建構工具節點時,可視需要自動啟動對應的節點。完成工作後,這些節點就會自動關閉,資源也會加回叢集的資源集區。
請注意,這項服務會對所有與選取條件相符的 Pod,公開通訊埠 8080 和 50000,意即在 Kubernetes 叢集內公開 Jenkins 網頁 UI 和建構工具/代理程式註冊通訊埠。此外,jenkins-ui 服務會透過 ClusterIP 公開,不開放從叢集外部存取。
擷取管理員密碼並登入 Jenkins 介面。
在 Cloud Shell 動作列,依序點選「網頁預覽」圖示 和「透過以下通訊埠預覽:8080」,進入 Jenkins 使用者介面:
如果出現提示訊息,請以 admin 這個使用者名稱和自動產生的密碼登入。
現在您已在 Kubernetes 叢集中成功設定 Jenkins!在接下來的幾項工作中,Jenkins 將推動整個自動化 CI/CD 管道的運作。
在這項工作中,您會在持續部署管道部署範例應用程式 gceme。這個應用程式是以 Go 語言編寫,位於存放區的 sample-app 目錄。您在 Compute Engine 執行個體上執行 gceme 二進位檔時,應用程式會在資訊卡中顯示執行個體的中繼資料。
這款應用程式類似微服務,支援兩種作業模式。
我們會將應用程式部署至下列兩種不同環境:
kubectl apply 指令,建立正式環境和初期測試環境的部署項目及相關服務:點選「Check my progress」,確認工作已完成。如果已成功建立部署項目,您將會看見評估分數。
根據預設,系統只會部署一個前端副本。請使用 kubectl scale 指令,確保隨時都至少有 4 個副本正常運作。
輸出內容範例:
將外部 IP 貼至瀏覽器中,即可看到畫面上顯示資訊卡。您看到的頁面應與下圖類似:
在瀏覽器中開啟前端外部 IP 位址,確認兩項服務都正常運作。
執行下列指令,檢查服務的版本輸出結果 (應顯示為「1.0.0」):
您已成功部署範例應用程式!接下來要設定管道,以穩定持續部署變更。
在這項工作中,您將按照下列步驟建立 Jenkins 管道:
gceme 範例應用程式的副本,並推送至 GitHub 存放區:在 Cloud Shell 執行下列指令,設定 Git 和 GitHub:
成功登入後,您的 GitHub 使用者名稱會出現在 Cloud Shell 輸出內容中。
系統不會向您收取這個存放區的費用,因此可以忽略警告。
設定憑證來允許 Jenkins 存取程式碼存放區。Jenkins 會使用叢集的服務帳戶憑證,從 GitHub 存放區下載程式碼。
在 Jenkins 使用者介面中,點按右側角落的「Manage Jenkins」(設定圖示),然後依序點按「Security」>「Credentials」。
點按「System」。
點按「Global」。
點按「Add Credentials」。
選取「Google Service Account from metadata」,然後點按「Next」。
在「ID」欄位輸入專案 ID,然後點按「Create」。
全域憑證已加入。
http://cd-jenkins:8080
cd-jenkins-agent:50000
按照下方步驟操作,使用安全殼層金鑰完成驗證,允許 Jenkins 存取 GitHub 私人存放區:
a. 產生安全殼層金鑰
continuous-deployment-on-kubernetes/sample-app」資料夾,從本機電腦下載私密金鑰 (id_github) 和公開金鑰 (id_github.pub)。b. 將公開金鑰新增至 GitHub
產生安全殼層金鑰後,您必須將公開金鑰新增至 GitHub,Jenkins 才能存取存放區。
登入 GitHub 帳戶。點按 GitHub 個人資料,然後前往「Settings」。
選取側邊選單中的「SSH and GPG keys」。
點按「New SSH key」。
標題輸入「SSH_KEY_LAB」。
找到從 ~/continuous-deployment-on-kubernetes/sample-app/id_github.pub 這個路徑下載的公開金鑰 (id_github.pub),然後將金鑰內容貼至「Key」欄位。您也可以在「Title」欄位加入描述性名稱。
點按「Add SSH key」。
c. 將 Jenkins 設為使用安全殼層金鑰
前往 Jenkins,然後選取資訊主頁中的「Manage Jenkins」。
在「Security」底下選取「Credentials」選項。
點按「Stores scoped to Jenkins」底下的「System」。
點按「Global」。
點按「Add Credentials」。
選取「SSH Username with private key」,然後點按「Next」。
「ID」請輸入
「Username」請輸入 [您的 GitHub 使用者名稱]。
選擇「Enter directly」做為私密金鑰的提供方式,然後點按「Add」,貼上 id_github 檔案 (從 ~/continuous-deployment-on-kubernetes/sample-app/id_github 下載) 的內容。
點按「Create」。
d. 將公開安全殼層金鑰新增至已知主機
在 Cloud Shell 建立檔案並命名為 known_hosts.github,並將公開安全殼層金鑰加入這個檔案。
e. 設定已知的主機金鑰
前往 Jenkins,然後點按「Manage Jenkins」。
在「Security」 底下,點按「Security」。
在「Git Host Key Verification Configuration」底下,從「Host Key Verification Strategy」下拉式選單中選取「Manually provided keys」。
點按「Open Editor」,將 known hosts.github 檔案的內容貼到「Approved Host Keys」欄位。
點按「Save」。
前往 Jenkins 使用者介面,按照下列步驟設定 Pipeline 工作。
在左側面板依序點按「Jenkins」>「New Item」。
輸入項目名稱「sample-app」,選擇「Multibranch Pipeline」選項,然後點按「OK」。
在下一頁的「Branch Sources」部分,從「Add Source」下拉式選單中選取「Git」。
在「Project Repository」欄位,貼上 sample-app 存放區的 HTTPS 本機副本網址。將 ${GITHUB_USERNAME} 改成您的 GitHub 使用者名稱:
在「Credentials」選單的選項中,選取 GitHub 憑證名稱。
在「Scan Multibranch Pipeline Triggers」部分底下,勾選「Periodically if not otherwise run」方塊,然後將「Interval」的值設為「1 minute」。
其餘選項的值都不更動,然後點按「Save」。
完成上述步驟後,系統就會執行 Branch indexing 工作。這個中繼工作會找出存放區中的分支版本,並確保現有分支版本沒有任何變動。如果點按左上方的 sample-app,應該會看到 Master 工作。
您已成功建立 Jenkins 管道!接下來要建立開發環境,以進行持續整合。
開發分支版本是一組環境,開發人員會先在這裡測試程式碼變更,再提交出去並整合至正式網站。這些環境是應用程式的簡化版,但部署時仍須採用和正式環境一樣的機制。
如要從功能分支版本建立開發環境,可將該分支版本推送至 Git 伺服器,讓 Jenkins 部署環境。
定義該管道的 Jenkinsfile 是以 Jenkins Pipeline Groovy 語法編寫而成。使用 Jenkinsfile 可將整個建構管道編寫到同一個檔案中,而且該檔案會和原始碼放在一起。管道支援平行處理等強大功能,並要求使用者手動核准。
為確保管道正常運作,請修改 Jenkinsfile 並設定專案 ID。
vi 之類的終端機編輯器開啟 Jenkinsfile:將 REPLACE_WITH_YOUR_PROJECT_ID 這個值改成您的 PROJECT_ID (PROJECT_ID 就是專案 ID,可在實驗室的 CONNECTION DETAILS 部分找到)。您也能執行 gcloud config get-value project 來查詢該 ID。
將 CLUSTER_ZONE 的值變更為 gcloud config get compute/zone 來查詢這個值。
Jenkinsfile 檔案,按下 ESC 鍵,然後輸入下列內容 (適用於 vi 終端機編輯器):現在您要將 gceme 資訊卡從藍色變更為橘色,實際體驗應用程式的變化過程。
html.go:<div class="card blue"> 改成:html.go 檔案,按下 ESC 鍵,然後輸入下列內容:main.go:將該行更新為下列內容:
在這項工作中,您將練習部署開發環境。
執行上述指令將開始建構開發環境。
將變更推送至 Git 存放區之後,請前往 Jenkins 使用者介面,您會看到 new-feature 分支版本的建構作業已啟動,而變更會在一分鐘內接收到。
kubectl --namespace=new-feature apply... 這段訊息,出現即代表系統正在將 new-feature 分支版本部署至叢集。如果 Build Executor 中未顯示任何內容,別擔心。只要前往 Jenkins 首頁 >「sample app」,就能確認 new-feature 管道是否已建立。
localhost,讓 kubectl Proxy 將要求轉送至服務,以確認應用程式可正常存取:您應該會收到「2.0.0」這段回應,也就是正在執行的版本。
如果收到類似下方的錯誤訊息:
curl 指令。看到下列輸出內容時,即可繼續操作:到此開發環境已設定成功!接下來,您將延伸運用先前單元所學的知識,部署初期測試版來測試新功能。
點選「Check my progress」,確認工作已完成。如果已成功啟動 new-feature 分支版本的建構作業,您將看見評估分數。
new-feature 分支版本
您已驗證應用程式在開發環境中執行的是最新程式碼,接下來要將該程式碼部署至初期測試環境。
2.0.0:大功告成!您已部署初期測試版,接著要將新版本部署至正式環境。
點選「Check my progress」,確認工作已完成。如果已成功部署初期測試版,您將看見評估分數。
您已成功部署初期測試版,而且未收到任何客訴,現在準備將新版本部署至正式環境中的剩餘機群。
在 Jenkins 中,您應該會看到 Master 管道已啟動。
點選「Check my progress」,確認工作已完成。如果已成功啟動 Master 管道,您就會看見評估分數。
1.0.0,請重新執行上方的指令。確認結果正常後,再按下 CTRL+C,停止執行這項指令。輸出內容範例:
您也可以前往 gceme 應用程式顯示資訊卡的網站,應該會發現資訊卡已從藍色變成橘色。
輸出內容範例:
下列選擇題可以加深您對本實驗室所述概念的理解,盡力回答即可。
大功告成!
太棒了,您已成功將應用程式部署至正式環境。
本實作實驗室到此結束。您已順利在 Kubernetes Engine 部署並操作 Jenkins,建構能正常運作的持續推送軟體更新/持續部署管道。您在 Kubernetes Engine 中部署重要的 DevOps 工具並加以設定,以用於正式環境,也實際操作 kubectl 指令列工具和 YAML 檔案中的部署設定。此外,您也初步瞭解如何設定 Jenkins 管道,支援開發/部署程序。有了這次的實作經驗,您應能放心在自己的 DevOps 環境中應用這些工具。
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2026 年 2 月 26 日
實驗室上次測試日期:2026 年 2 月 26 日
Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
This content is not currently available
We will notify you via email when it becomes available
Great!
We will contact you via email if it becomes available
One lab at a time
Confirm to end all existing labs and start this one
Complete this quick step to start your lab.