在 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 工作階段會在主控台底部的頁框中開啟,您可以使用這個殼層來執行
gcloud
指令。安裝 Helm 3.8.0 以上版本。在 Helm 的舊版中,支援 OCI 格式的圖表是實驗功能。
執行
helm version
來驗證版本。
設定本機 Shell
如要安裝 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。
- 參閱開發運作相關資源,並探索我們的研究計畫。