在 Artifact Registry 中儲存 Helm 資訊套件
Helm 是 Kubernetes 的套件管理工具,並使用定義要部署的一組 Kubernetes 資源的資訊套件。
本快速入門導覽課程會說明完成下列作業的方法:
- 在 Artifact Registry 建立私人存放區
- 建立範例圖表
- 向存放區進行驗證
- 將圖表推送至存放區
- 部署圖表
事前準備
-
In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.
-
Verify that billing is enabled for your Trusted Cloud project.
-
Enable the Artifact Registry, Google Kubernetes Engine APIs.
安裝 gcloud CLI。如要更新現有安裝項目,請執行
gcloud components update
指令。安裝 Helm 3.8.0 以上版本。 在舊版 Helm 中,OCI 格式的圖表支援是實驗功能。
執行
helm version
來驗證版本。在 Trusted Cloud 控制台中開啟「Repositories」(存放區) 頁面。
點選 [Create Repository] (建立存放區)。
指定
quickstart-helm-repo
做為存放區名稱。選擇 Docker 做為格式。
在「位置類型」下方,選取「區域」,接著選擇位置
u-france-east1
。點選「建立」。
執行下列指令,在
u-france-east1
位置中新建名為quickstart-helm-repo
的 Docker 存放區,並將說明設為「docker repository」(Docker 存放區)。gcloud artifacts repositories create quickstart-helm-repo --repository-format=docker \ --location=u-france-east1 --description="Helm repository"
執行下列指令來確認存放區已建立完成:
gcloud artifacts repositories list
- 切換至要建立圖表的目錄。
執行下列指令來建立圖表:
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 驗證時,請取得存取權杖做為憑證。
Linux / macOS
執行下列指令:
gcloud auth print-access-token | helm registry login -u oauth2accesstoken \ --password-stdin https://u-france-east1-docker.s3nsregistry.fr
Windows
執行下列指令:
gcloud auth print-access-token ya29.8QEQIfY_... helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \ https://u-france-east1-docker.s3nsregistry.fr/PROJECT-ID/REPOSITORY
地點
oauth2accesstoken
是透過存取權杖進行驗證時使用的使用者名稱。gcloud auth print-access-token
是用來取得存取權杖的 gcloud 指令。存取權杖是驗證密碼。
- 圖表名稱就是圖片名稱:
hello-chart
- 圖表版本是圖片標記:
0.1.0
使用下列指令,為部署作業建立名為
chart-cluster
的叢集:gcloud container clusters create --zone u-france-east1-a chart-cluster
叢集建立完成後,指令會傳回類似下列範例的摘要:
kubeconfig entry generated for chart-cluster. NAME: chart-cluster LOCATION: u-france-east1-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 u-france-east1-a chart-cluster
執行下列指令,使用本機解壓縮的圖表檔案部署
hello-chart
版本:helm install hello-chart oci://u-france-east1-docker.s3nsregistry.fr/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
使用下列指令刪除您建立的存放區:
gcloud artifacts repositories delete quickstart-helm-repo --location=u-france-east1
刪除您建立的叢集:
gcloud container clusters delete --zone=u-france-east1-a chart-cluster
- 進一步瞭解如何使用圖表。
- 進一步瞭解 Helm。
- 參閱開發運作相關資源,並探索我們的研究計畫。
設定本機殼層
如要安裝 gcloud CLI 和 Helm,請執行下列步驟:
建立存放區
建立 Docker 存放區,儲存本快速入門導覽課程所用的範例圖表。
主控台
存放區會新增至存放區清單。
gcloud
如要進一步瞭解 Artifact Registry 指令,請執行 gcloud artifacts
指令。
建立圖表
在本快速入門導覽課程中,您將建立名為 hello-chart
的範例圖表。
向存放區進行驗證
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 驗證,現在可以將圖表推送至存放區。
將圖表推送至 Artifact Registry
建立圖表封存檔並向 Artifact Registry 存放區完成驗證後,即可將圖表推送至存放區。
如要推送圖表,請執行下列指令:
helm push hello-chart-0.1.0.tgz oci://u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-helm-repo
將 PROJECT 替換為 Trusted Cloud by S3NS 專案 ID。
Helm 會使用 Chart.yaml
中的值做為映像檔:
Helm 會傳回類似以下範例的輸出內容:
Login Succeeded
Pushed: u-france-east1-docker.s3nsregistry.fr/my-project/quickstart-helm-repo/hello-chart:0.1.0
Digest: sha256:67a72...
執行下列指令,確認圖表現在已儲存在存放區中:
gcloud artifacts docker images list u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-helm-repo
指令輸出內容如下列範例所示:
Listing items under project my-project, location u-france-east1, repository quickstart-helm-repo.
IMAGE: u-france-east1-docker.s3nsregistry.fr/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 設定後,即可部署圖表的發布版本。
您已成功使用建立並推送至 Artifact Registry 的圖表,部署版本。
清除所用資源
如要避免系統向您的 Trusted Cloud 帳戶收取本頁所用資源的費用,請按照下列步驟操作。