arrow_back

使用 Gemini 導入持續推送軟體更新機制

登录 加入
访问 700 多个实验和课程

使用 Gemini 導入持續推送軟體更新機制

实验 1 小时 30 分钟 universal_currency_alt 5 积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

總覽

在本實驗室,您會使用 Google Cloud 中的 AI 協作工具 Gemini,為 Google Kubernetes Engine (GKE) 中的一組微服務,查看記錄檔及設定建構環境。

本實驗室適合在 DevOps 環境中作業的工程師 (資歷不限)。

注意:Duet AI 已更名為 Gemini,這是我們的新一代模型,本研究室的內容也已據此更新。參考研究室指示時,在使用者介面或說明文件中若有任何內容提及 Duet AI,請視為 Gemini。 注意:Gemini 仍處於早期技術階段,因此可能會輸出看似合理卻與事實不符的內容。使用輸出內容前,請先確認內容是否屬實。如要瞭解詳情,請參閱 Gemini 版 Google Cloud 和負責任的 AI 技術

目標

本實驗室將說明如何執行下列工作:

  • 在 Gemini 的協助下建立 GKE 叢集。
  • 將一組微服務部署至 GKE。
  • 在 Gemini 的協助下找到及瞭解應用程式記錄檔。
  • 使用 Gemini 瞭解如何建立私人建構環境。

設定

每個實驗室都會提供新的 Google Cloud 專案和一組資源,讓您在時限內免費使用。

  1. 按一下「Start Lab」按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側的「Lab Details」窗格會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 剩餘時間
    • 必須在這個研究室中使用的臨時憑證
    • 完成這個實驗室所需的其他資訊 (如有)
  2. 點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」

    接著,實驗室會啟動相關資源並開啟另一個分頁,當中顯示「登入」頁面。

    提示:您可以在不同的視窗中並排開啟分頁。

    注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

    {{{user_0.username | "Username"}}}

    您也可以在「Lab Details」窗格找到 Username

  4. 點選「下一步」

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

    {{{user_0.password | "Password"}}}

    您也可以在「Lab Details」窗格找到 Password

  6. 點選「下一步」

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 按過後續的所有頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Google Cloud 控制台稍後會在這個分頁開啟。

注意:如要查看列出 Google Cloud 產品和服務的選單,請點選左上角的「導覽選單」「導覽選單」圖示

啟用 Cloud Shell

Cloud Shell 是含有多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,並在 Google Cloud 中運作。Cloud Shell 可讓您透過指令列存取 Google Cloud 資源。gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵完成功能。

  1. 在控制台的右上方,點按「啟用 Cloud Shell」按鈕 「啟用 Cloud Shell」圖示

  2. 點按「繼續」
    請稍候片刻,等待系統完成佈建作業並連線至環境。連線建立後,即代表您已通過驗證,且專案已設為「PROJECT_ID」

指令範例

  • 列出目前使用的帳戶名稱:
gcloud auth list

輸出內容

Credentialed accounts: - <myaccount>@<mydomain>.com (active)

輸出內容範例

Credentialed accounts: - google1623327_student@qwiklabs.net
  • 列出專案 ID:
gcloud config list project

輸出內容

[core] project = <project_ID>

輸出內容範例

[core] project = qwiklabs-gcp-44776a13dea667a6 注意:如需 gcloud 的完整說明,請參閱 gcloud CLI 總覽指南

工作 1:設定 Gemini 所需的環境和帳戶

  1. 使用實驗室憑證登入 Google Cloud 控制台,開啟 Cloud Shell 終端機視窗。

  2. 執行下列指令,在 Cloud Shell 設定專案 ID 和區域環境變數:

    PROJECT_ID=$(gcloud config get-value project) REGION={{{project_0.default_region|set at lab start}}} echo "PROJECT_ID=${PROJECT_ID}" echo "REGION=${REGION}"
  3. 執行下列指令,將已登入的 Google 使用者帳戶儲存在環境變數中:

    USER=$(gcloud config get-value account 2> /dev/null) echo "USER=${USER}"
  4. 為 Gemini 啟用 Cloud AI Companion API:

    gcloud services enable cloudaicompanion.googleapis.com --project ${PROJECT_ID}
  5. 為您的 Google Cloud Qwiklabs 使用者帳戶授予必要的 IAM 角色,以便使用 Gemini:

    gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/cloudaicompanion.user gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/serviceusage.serviceUsageViewer

    新增角色後,使用者即可透過 Gemini 取得協助。

點選「Check my progress」,確認目標已達成。 啟用相關 API 並授予必要 IAM 角色。

工作 2:設定 Google Kubernetes Engine

在這項工作中,您會啟用 Google Kubernetes Engine (GKE) API,授予自己管理 GKE 叢集的必要權限,然後建立叢集。

  1. 執行下列指令,在 Cloud Shell 啟用 GKE API:

    gcloud services enable container.googleapis.com --project ${PROJECT_ID}
  2. 執行下列指令,為自己的使用者帳戶授予 GKE 的管理員權限:

    gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/container.admin

    您可以建立可用區 GKE 叢集來執行微服務。Gemini 能告訴您如何建立。

  3. 如果您在 Google Cloud 控制台中沒有看到「開啟或關閉 Gemini AI 對話」選單 Gemini 選單,請重新整理頁面。

  4. 如要開啟 Gemini 窗格,請在 Google Cloud 控制台的頂端選單中點選「開啟或關閉 Gemini AI 對話」圖示 Gemini 選單,並視需要按一下「啟用」

  5. 點選「Start Chatting」

    注意:如果「Start Chatting」按鈕未啟用,請重新整理頁面,並再次開啟 Gemini。
  6. Gemini 提示中輸入下列文字,然後點選「傳送提示」圖示 傳送提示給 Gemini

    What's the gcloud command for creating a zonal GKE cluster with a custom number of nodes and custom machine type? (什麼 gcloud 指令能建立可用區 GKE 叢集並自訂節點數量與機型?)

    Gemini 會提供類似下方的回覆:

    gcloud container clusters create <CLUSTER_NAME> \ --project=PROJECT_ID \ --zone=COMPUTE_ZONE \ --num-nodes=NUM_NODES \ --machine-type=MACHINE_TYPE
  7. 執行下列指令,建立可用區 GKE 叢集

    gcloud container clusters create test \ --project={{{project_0.project_id | set at lab start}}} \ --zone={{{project_0.default_zone | set at lab start}}} \ --num-nodes=3 \ --machine-type=e2-standard-4

    叢集建立作業會在幾分鐘內完成。請等待指令執行完畢。

點選「Check my progress」,確認目標已達成。 設定 Google Kubernetes Engine。

工作 3:使用 kubectl 部署一組微服務

在這項工作中,您會複製一個存放區,存放區內有幾項微服務的程式碼。這些微服務構成一個線上選品店應用程式。您也會使用 kubectl 將這些微服務部署至 GKE 叢集。

以下是應用程式的架構圖:

應用程式架構圖

  1. 在 Cloud Shell 執行下列指令,複製存放區:

    git clone --depth=1 https://github.com/GoogleCloudPlatform/microservices-demo

    這個存放區內含應用程式中各項微服務的原始碼。

  2. 執行下列指令,將微服務部署至 GKE:

    cd ~/microservices-demo kubectl apply -f ./release/kubernetes-manifests.yaml
  3. 在各項微服務可供使用前,重複執行下列指令來查看部署狀態:

    kubectl get deployments

    各項微服務可供使用時,「AVAILABLE」欄中的值就會設為 1。執行 kubectl get deployments 指令後會傳回類似下方的內容:

    NAME READY UP-TO-DATE AVAILABLE AGE adservice 1/1 1 1 94s cartservice 1/1 1 1 96s checkoutservice 1/1 1 1 97s currencyservice 1/1 1 1 95s emailservice 1/1 1 1 97s frontend 1/1 1 1 97s loadgenerator 1/1 1 1 95s paymentservice 1/1 1 1 96s productcatalogservice 1/1 1 1 96s recommendationservice 1/1 1 1 97s redis-cart 1/1 1 1 94s shippingservice 1/1 1 1 95s

    存取應用程式時,需使用應用程式的外部 IP 位址。

  4. 執行下列指令,確定應用程式的網址:

    echo "http://$(kubectl get service frontend-external -o=jsonpath='{.status.loadBalancer.ingress[0].ip}')" 注意:取得外部 IP 位址可能需要一點時間。請執行上方指令,直到網址中出現 IP 位址。
  5. 接下來要在瀏覽器分頁中開啟應用程式,請按住 Control 鍵 (Windows 和 Linux) 或 Command 鍵 (macOS),然後點選 Cloud Shell 中的網址。

    應用程式的首頁隨即開啟。您可以試著使用這個應用程式。

    注意:如果彈出式視窗顯示「連線不安全」,請點選「繼續造訪網站」

點選「Check my progress」,確認目標已達成。 使用 kubectl 部署一組微服務。

工作 4:使用 Gemini 瞭解 GKE 中工作負載的記錄檔

假設您是 DevOps 工程師,剛接手一組微服務,需要管理。這些微服務是在 GKE 叢集中執行。為了瞭解環境,您決定查看各項微服務的記錄檔。

在這項工作中,您會在 Gemini 的協助下設計查詢,搜尋及瞭解特定記錄檔。

  1. 前往 Google Cloud 控制台,在標題列的「搜尋」欄位輸入 Logs Explorer,然後在搜尋結果中點選「Logs Explorer」

  2. 在「Gemini」提示中輸入下列文字,然後點選「傳送提示」圖示 傳送提示給 Gemini

    What is a Logs Explorer query to search for logs from Pods in a namespace called "default" in a GKE cluster named "test"? (什麼 Logs Explorer 查詢可在「test」這個 GKE 叢集搜尋「default」命名空間的 Pod 記錄檔?)

    您會收到類似下方的建議查詢內容:

    resource.type="k8s_container" resource.labels.cluster_name="test" resource.labels.namespace_name="default" 注意:如果 Gemini 建議的查詢與上方不同,您可以使用這裡的查詢。
  3. 在「查詢」方塊中貼上查詢,點選「執行查詢」

    系統現在會篩選記錄訊息,只顯示 GKE 叢集「test」產生的訊息,接著您就能查看記錄項目。

  4. 如要瞭解詳情,請展開記錄項目,然後點選「說明這個記錄項目」

    舉例來說,如果點選記錄項目 GET /product/0PUK6V6EV0 的說明按鈕,可能會收到類似下方的 Gemini 回覆:

    • This is a log entry from a Kubernetes container named main. • The container is part of a pod named loadgenerator-84cc74dcd-jf6dr in the default namespace. • The pod is running on cluster test in zone us-west1-a. • The log entry is an HTTP request to /product/0PUK6V6EV0 that took 49 milliseconds to process. • The request resulted in a 200 OK response and 40 bytes of data being sent back to the client.

    看完工作負載記錄檔的說明後,您決定設定基礎架構,在一組沒有網際網路連線的私人 worker 上,建構團隊日後所需的容器映像檔。

工作 5:使用 Gemini 為容器映像檔建立私人建構環境

在這項工作中,您會使用 Gemini 瞭解如何建立及執行私人建構環境。

您負責為一項機密專案設置建構系統。您聽說 Cloud Build 這項服務可在 Google Cloud 上使用 worker 集區執行建構作業。

  1. Gemini 對話中輸入下列提示,進一步瞭解工作站集區:

    What is a Cloud Build worker pool? (Cloud Build worker 集區是什麼?)

    Gemini 回覆的開頭可能如下:

    A Cloud Build worker pool is a group of virtual machines that are dedicated to running your builds. Worker pools are created in a specific region and zone, and they can be either private or public. Private pools are only accessible to your project, and they offer a number of benefits, including: • Isolation: Your builds will run on dedicated machines, which means that they will not be affected by other workloads running in the same project. • Security: Private pools are more secure than public pools, as they are not accessible to other projects. • Performance: Private pools can offer better performance than public pools, as they are not shared with other projects.

    私人 worker 集區的安全特性可能符合您專案的需求。如果能防止建構作業存取公開網際網路會更理想。

  2. Gemini 對話中輸入下列提示:

    Can you create a private worker pool that has no access to the public internet? (能建立無法存取公開網際網路的私人 worker 集區嗎?)

    Gemini 可能會提供類似下方的回覆:

    Yes, you can create a private worker pool that has no access to the public internet. This is known as a "private pool with no public egress". To create a private pool with no public egress, you can use the --no-public-egress flag when creating the pool.

    太好了,這應該非常安全。您瞭解私人集區中的 worker 無法存取 PyPI 等公開套件存放區。此外,您需要託管私人套件,並想知道能否使用 Artifact Registry

  3. Gemini 對話中輸入下列提示:

    If I create a private pool with no public egress, can I use Artifact Registry to host my packages privately and access them from a private pool? (如果建立無公開 egress 流量的私人集區,可以使用 Artifact Registry 以不公開的方式託管套件,並從私人集區存取這些套件嗎?)

    Gemini 可能會提供類似下方的回覆:

    Yes, you can use Artifact Registry to host your packages privately and access them from a private pool with no public egress. To do this, you will need to create a private Artifact Registry repository and grant your private pool access to the repository. You can do this by adding the service account for your private pool as a member of the repository with the Artifact Registry Reader role. Once you have created the repository and granted your private pool access, you can push your packages to the repository and then pull them from your private pool.

    接著請 Gemini 提供建立私人集區的 gcloud CLI 指令。

  4. Gemini 對話中輸入下列提示:

    What is the gcloud command for creating a private worker pool with no public egress? (什麼 gcloud 指令可建立沒有公開 egress 流量的私人 worker 集區?

    Gemini 可能會提供類似下方的指令:

    gcloud builds worker-pools create POOL_NAME \ --project=PROJECT_ID \ --region=REGION \ --no-public-egress
  5. 執行下列指令來建立私人集區:

    gcloud builds worker-pools create pool-test \ --project={{{project_0.project_id|set at lab start}}} \ --region={{{project_0.default_region|set at lab start}}} \ --no-public-egress

    實驗室環境可能會傳回類似下方的錯誤訊息:

    ERROR: (gcloud.builds.worker-pools.create) FAILED_PRECONDITION: project "{{{project_0.project_id|set at lab start}}}" is unable to use private pools

    在本實驗室中,您可以忽略這則錯誤訊息。

    注意:實驗室環境中目前已停用私人集區。如果是實驗室環境以外的專案,建立私人集區的指令應能正常運作。

    接著詢問 Gemini 如何建立私人 Docker 存放區。

  6. Gemini 對話中輸入下列提示:

    How can I use gcloud to create a private Docker repository for container images in Artifact Registry? (如何使用 gcloud 為 Artifact Registry 中的容器映像檔建立私人 Docker 存放區?)

    Gemini 可能會提供類似下方的 gcloud CLI 指令:

    gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=REGION \ --description="DESCRIPTION" where: • REPOSITORY is the name of the private Docker repository to be created. • REGION is the region in which to create the private Docker repository. • DESCRIPTION is a description of the private Docker repository.
  7. 執行下列指令來建立存放區:

    gcloud artifacts repositories create my-repo \ --repository-format=docker \ --location={{{project_0.default_region|set at lab start}}} \ --description="My private Docker repository"

    系統便會建立存放區。

    點選「Check my progress」,確認目標已達成。 建立存放區。

關閉研究室

如果您已完成研究室,請按一下「End Lab」(關閉研究室)。Qwiklabs 會移除您已用的資源,並清除使用帳戶。

您可以為研究室的使用體驗評分。請選取合適的星級評等並提供意見,然後按一下「Submit」(提交)

星級評等代表您的滿意程度:

  • 1 星 = 非常不滿意
  • 2 星 = 不滿意
  • 3 星 = 普通
  • 4 星 = 滿意
  • 5 星 = 非常滿意

如果不想提供意見回饋,您可以直接關閉對話方塊。

如有任何想法、建議或指教,請透過「Support」(支援) 分頁提交。

恭喜!

在本實驗室中,您已學會如何執行下列工作:

  • 在 Gemini 的協助下建立 GKE 叢集。
  • 將一組微服務部署至 GKE。
  • 在 Gemini 的協助下找到及瞭解應用程式記錄檔。
  • 使用 Gemini 瞭解如何建立私人建構環境。

Copyright 2024 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。