推送 Helm Chart - Amazon ECR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

推送 Helm Chart

Amazon ECR 支持将 Open Container Initiative (OCI) 构件推送到您的存储库。要显示此功能,请使用以下步骤将 Helm Chart 推送到 Amazon ECR。

有关在 Amazon EKS 中使用 Amazon ECR 托管的 Helm Chart 的更多信息,请参阅 使用 Amazon EKS 安装托管在 Amazon ECR 上的 Helm Chart

将 Helm Chart 推送到 Amazon ECR 存储库

  1. 安装最新版本的 Helm 客户端。这些步骤是使用 Helm 版本 3.8.0 编写的。有关更多信息,请参阅安装 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。存储库的名称应与步骤 3 中所使用 Helm Chart 的名称匹配。有关更多信息,请参阅 创建私有存储库

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

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

    helm push helm-test-chart-0.1.0.tgz oci://aws_account_id.dkr.ecr.region.amazonaws.com/
  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 安装托管在 Amazon ECR 上的 Helm Chart