准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
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 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验