在 Artifact Registry 中儲存 Helm 資訊套件
Helm 是 Kubernetes 的套件管理工具,並使用定義要部署的一組 Kubernetes 資源的資訊套件。
本快速入門導覽課程會說明完成下列作業的方法:
- 在 Artifact Registry 建立私人存放區
- 建立範例圖表
- 向存放區進行驗證
- 將圖表推送至存放區
- 部署圖表
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Google Kubernetes Engine APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Google Kubernetes Engine APIs.
選擇殼層
如要完成本快速入門導覽課程,請使用 Cloud Shell 或本機殼層。
- Cloud Shell
- Cloud Shell 是殼層環境,用於管理託管在 Google Cloud上的資源。這個環境已預先安裝 Docker、Helm 和 Google Cloud CLI,這是 Google Cloud的主要指令列介面。
- 本機殼層
- 如果您想要使用本機殼層,就必須在環境中安裝 Docker 和 gcloud CLI。
啟動 Cloud Shell
請執行下列步驟來啟動 Cloud Shell:
前往 Google Cloud 控制台。
按一下「Activate Cloud Shell」(啟用 Cloud Shell) 按鈕:
。
此時 Cloud Shell 工作階段會在主控台底部的頁框中開啟,您可以使用這個殼層來執行
gcloud
指令。安裝 Helm 3.8.0 以上版本。 在舊版 Helm 中,OCI 格式的圖表支援是實驗功能。
執行
helm version
來驗證版本。
設定本機殼層
如要安裝 gcloud CLI 和 Helm,請執行下列步驟:
安裝 gcloud CLI。如要更新現有安裝項目,請執行
gcloud components update
指令。安裝 Helm 3.8.0 以上版本。 在舊版 Helm 中,OCI 格式的圖表支援是實驗功能。
執行
helm version
來驗證版本。
建立存放區
建立 Docker 存放區,儲存本快速入門導覽課程所用的範例圖表。
主控台
在 Google Cloud 控制台中開啟「Repositories」(存放區) 頁面。
點選 [Create Repository] (建立存放區)。
指定
quickstart-helm-repo
做為存放區名稱。選擇 Docker 做為格式。
在「位置類型」下方,選取「區域」,接著選擇位置
us-west1
。點選「建立」。
存放區會新增至存放區清單。
gcloud
執行下列指令,在
us-west1
位置中新建名為quickstart-helm-repo
的 Docker 存放區,並將說明設為「docker repository」(Docker 存放區)。gcloud artifacts repositories create quickstart-helm-repo --repository-format=docker \ --location=us-west1 --description="Helm repository"
執行下列指令來確認存放區已建立完成:
gcloud artifacts repositories list
如要進一步瞭解 Artifact Registry 指令,請執行 gcloud artifacts
指令。
建立圖表
在本快速入門導覽課程中,您將建立名為 hello-chart
的範例圖表。
- 切換至要建立圖表的目錄。
執行下列指令來建立圖表:
helm create hello-chart
Helm 會建立名為
hello-chart
的目錄,其中包含一組預設的圖表檔案。其中一個檔案是 Chart.yaml,內含圖表相關資訊。將圖表封裝成封存檔。
helm package hello-chart/
Helm 會使用
Chart.yaml
中的圖表名稱和版本號碼,建立名為hello-chart-0.1.0.tgz
的封存檔。
向存放區進行驗證
Helm 必須先向 Artifact Registry 驗證,才能推送或安裝映像檔。
Helm 可以使用 Docker 設定檔中的現有登錄檔設定。如果您尚未設定 Docker 以搭配 Artifact Registry 使用,可以透過存取權杖進行驗證,以便完成本快速入門導覽課程。
如要進一步瞭解驗證,請參閱設定 Helm 的驗證。
使用 Docker 設定進行驗證
根據預設,Helm 支援 Docker 設定檔 config.json 中的登錄設定。Helm 會在預設位置或 DOCKER_CONFIG 環境變數指定的位置,尋找登錄設定。
如果您設定 Docker 時使用憑證輔助程式向 Artifact Registry 進行驗證,Helm 會沿用您現有的 Artifact Registry Docker 存放區設定。
使用存取權杖進行驗證
如要使用存取權杖進行驗證,請按照下列步驟操作:
使用 Helm 向 Artifact Registry 驗證時,請取得存取權杖做為憑證。
Linux / macOS
執行下列指令:
gcloud auth print-access-token | helm registry login -u oauth2accesstoken \ --password-stdin https://us-west1-docker.pkg.dev
Windows
執行下列指令:
gcloud auth print-access-token ya29.8QEQIfY_... helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \ https://us-west1-docker.pkg.dev/PROJECT-ID/REPOSITORY
地點
oauth2accesstoken
是透過存取權杖進行驗證時使用的使用者名稱。gcloud auth print-access-token
是用來取得存取權杖的 gcloud 指令。存取權杖是驗證密碼。
Helm 現在已通過 Artifact Registry 驗證,現在可以將圖表推送至存放區。
將圖表推送至 Artifact Registry
建立圖表封存檔並向 Artifact Registry 存放區完成驗證後,即可將圖表推送至存放區。
如要推送圖表,請執行下列指令:
helm push hello-chart-0.1.0.tgz oci://us-west1-docker.pkg.dev/PROJECT/quickstart-helm-repo
將 PROJECT 替換為 Google Cloud專案 ID。
Helm 會使用 Chart.yaml
中的值做為映像檔:
- 圖表名稱就是圖片名稱:
hello-chart
- 圖表版本是圖片標記:
0.1.0
Helm 會傳回類似以下範例的輸出內容:
Login Succeeded
Pushed: us-west1-docker.pkg.dev/my-project/quickstart-helm-repo/hello-chart:0.1.0
Digest: sha256:67a72...
執行下列指令,確認圖表現在已儲存在存放區中:
gcloud artifacts docker images list us-west1-docker.pkg.dev/PROJECT/quickstart-helm-repo
指令輸出內容如下列範例所示:
Listing items under project my-project, location us-west1, repository quickstart-helm-repo.
IMAGE: us-west1-docker.pkg.dev/my-project/quickstart-helm-repo/hello-chart
DIGEST: sha256:67a72...
CREATE_TIME: 2021-11-08T22:59:57
UPDATE_TIME: 2021-11-08T22:59:57
您現在可以使用儲存在 Artifact Registry 中的圖表部署發布內容。
部署圖表
在 Helm 中,應用程式的已部署執行個體稱為「發布」。將存放區新增至 Helm 設定後,即可部署圖表的發布版本。
使用下列指令,為部署作業建立名為
chart-cluster
的叢集:gcloud container clusters create --zone us-west1-a chart-cluster
叢集建立完成後,指令會傳回類似下列範例的摘要:
kubeconfig entry generated for chart-cluster. NAME: chart-cluster LOCATION: us-west1-a MASTER_VERSION: 1.20.10-gke.1600 MASTER_IP: 34.66.36.211 MACHINE_TYPE: e2-medium NODE_VERSION: 1.20.10-gke.1600 NUM_NODES: 3 STATUS: RUNNING
取得叢集憑證,以便
kubectl
存取叢集:gcloud container clusters get-credentials --zone us-west1-a chart-cluster
執行下列指令,使用本機解壓縮的圖表檔案部署
hello-chart
版本:helm install hello-chart oci://us-west1-docker.pkg.dev/PROJECT/quickstart-helm-repo/hello-chart --version 0.1.0
指令會傳回部署作業的摘要:
NAME: hello-chart LAST DEPLOYED: Mon Nov 8 23:15:13 2021 NAMESPACE: default STATUS: deployed REVISION: 1
您已成功使用建立並推送至 Artifact Registry 的圖表,部署版本。
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取本頁所用資源的費用,請按照下列步驟操作。
使用下列指令刪除您建立的存放區:
gcloud artifacts repositories delete quickstart-helm-repo --location=us-west1
刪除您建立的叢集:
gcloud container clusters delete --zone=us-west1-a chart-cluster
後續步驟
- 進一步瞭解如何使用圖表。
- 進一步瞭解 Helm。
- 參閱開發運作相關資源,並探索我們的研究計畫。