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

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

推送Helm图表

Amazon ECR 支持将开放容器计划(OCI)工件推送到存储库。要显示此功能,请使用以下步骤将Helm图表推至 Amazon ECR.

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

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

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

  2. 在Helm3客户端中启用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 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" } ] }