将 Helm 图表推送到 Amazon ECR 私有存储库 - Amazon ECR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 Helm 图表推送到 Amazon ECR 私有存储库

您可以将 Open Container Initiative(OCI)构件推送到 Amazon ECR 存储库。要查看此功能的示例,请使用以下步骤将 Helm 图表推送到 Amazon ECR。

有关在 Amazon EKS 中使用 Amazon ECR 托管的 Helm 图表的信息,请参阅在 Amazon EKS 集群中安装 Helm 图表

将 Helm Chart 推送到 Amazon ECR 存储库
  1. 安装最新版本的 Helm 客户端。这些步骤是使用 Helm 版本 3.8.2 编写的。有关更多信息,请参阅安装 Helm

  2. 请按照以下步骤创建测试 Helm Chart。有关更多信息,请参阅 Helm 文档 - 入门

    1. 创建名为 helm-test-chart 的 Helm Chart 并清除 templates 目录的内容。

      helm create helm-test-chart rm -rf ./helm-test-chart/templates/*
    2. templates 文件夹中创建 ConfigMap。

      cd helm-test-chart/templates cat <<EOF > configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: helm-test-chart-configmap data: myvalue: "Hello World" EOF
  3. 打包图表。输出将包含您在推送 Helm Chart 时使用的打包图表的文件名。

    cd ../.. helm package helm-test-chart

    输出

    Successfully packaged chart and saved it to: /Users/username/helm-test-chart-0.1.0.tgz
  4. 创建存储库以存储 Helm Chart。存储库的名称应与步骤 2 中创建 Helm Chart 时使用的名称匹配。有关更多信息,请参阅 创建 Amazon ECR 私有存储库以存储映像

    aws ecr create-repository \ --repository-name helm-test-chart \ --region us-west-2
  5. 对要向其推送 Helm Chart 的 Amazon ECR 注册表验证 Docker 客户端的身份。必须针对每个注册表获得授权令牌,令牌有效期为 12 小时。有关更多信息,请参阅 Amazon ECR 中的私有注册表身份验证

    aws ecr get-login-password \ --region us-west-2 | helm registry login \ --username AWS \ --password-stdin aws_account_id.dkr.ecr.cn-north-1.amazonaws.com.cn
  6. 使用 helm push 命令推送 Helm Chart。输出应包括 Amazon ECR 存储库 URI 和 SHA 摘要。

    helm push helm-test-chart-0.1.0.tgz oci://aws_account_id.dkr.ecr.cn-north-1.amazonaws.com.cn/
  7. 描述您的 Helm Chart。

    aws ecr describe-images \ --repository-name helm-test-chart \ --region us-west-2

    在输出中,验证 artifactMediaType 参数指示正确的构件类型。

    { "imageDetails": [ { "registryId": "aws_account_id", "repositoryName": "helm-test-chart", "imageDigest": "sha256:dd8aebdda7df991a0ffe0b3d6c0cf315fd582cd26f9755a347a52adEXAMPLE", "imageTags": [ "0.1.0" ], "imageSizeInBytes": 1620, "imagePushedAt": "2021-09-23T11:39:30-05:00", "imageManifestMediaType": "application/vnd.oci.image.manifest.v1+json", "artifactMediaType": "application/vnd.cncf.helm.config.v1+json" } ] }
  8. (可选)有关其他步骤,请安装 Helm configmap 并开始使用 Amazon EKS。有关更多信息,请参阅 在 Amazon EKS 集群中安装 Helm 图表