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

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

推送 Helm 图表

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

有关将Amazon ECR托管的 Helm 图表与 结合使用的更多信息Amazon EKS,请参阅安装托管在上的Helm图表 Amazon ECR 配 Amazon EKS

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

  1. 安装 Helm 客户端版本 3。有关更多信息,请参阅安装 Helm。

  2. 在 Helm 3 客户端中启用 OCI 支持。

    export HELM_EXPERIMENTAL_OCI=1
  3. 创建存储库以存储您的 Helm 图表。有关更多信息,请参阅创建存储库.

    aws ecr create-repository \ --repository-name artifact-test \ --region us-west-2
  4. 向要将 Helm 图表推送到的Amazon ECR注册表验证您的 Helm 客户端。必须针对每个注册表获得授权令牌,令牌有效期为 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
  5. 使用以下步骤创建测试 Helm 图表。有关更多信息,请参阅 Helm 文档 - 入门

    1. 创建一个名为 的目录helm-tutorial以在其中工作。

      mkdir helm-tutorial cd helm-tutorial
    2. 创建名为 的 Helm 图表mychart并清除 templates 目录的内容。

      helm create mychart rm -rf ./mychart/templates/*
    3. 在 ConfigMap 文件夹中创建 templates

      cd mychart/templates cat <<EOF > configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: mychart-configmap data: myvalue: "Hello World" EOF
  6. 在本地保存图表,并使用注册表 URI 为图表创建一个别名。

    cd .. helm chart save . mychart helm chart save . aws_account_id.dkr.ecr.us-west-2.amazonaws.com/artifact-test:mychart
  7. 确定要推送的 Helm 图表。运行 helm chart list 命令以列出系统上的 Helm 图表。

    helm chart list

    输出应类似于以下内容:

    REF NAME VERSION DIGEST SIZE CREATED aws_account_id.dkr.ecr.us-west-2.amazonaws.com/artifact-tes.. mychart 0.1.0 30e0a03 3.6 KiB 14 seconds mychart mychart 0.1.0 ba3e62a 3.6 KiB About a minute
  8. 使用 helm chart push 命令推送 Helm 图表:

    helm chart push aws_account_id.dkr.ecr.region.amazonaws.com/artifact-test:mychart
  9. 描述您的 Helm 图表。

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

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

    { "imageDetails": [ { "registryId": "aws_account_id", "repositoryName": "artifact-test", "imageDigest": "sha256:f23ab9dc0fda33175e465bd694a5f4cade93eaf62715fa9390d9fEXAMPLE", "imageTags": [ "mychart" ], "imageSizeInBytes": 3714, "imagePushedAt": 1597433021.0, "imageManifestMediaType": "application/vnd.oci.image.manifest.v1+json", "artifactMediaType": "application/vnd.cncf.helm.config.v1+json" } ] }