无法从 aws ecr 中提取图像

问题描述 投票:0回答:1

我正在创建一个 helm 图表,该图表正在部署来自 aws ecr 的图像。完整代码:https://github.com/rcbandit111/test_helm_chart

每次安装 Helm Chart 时 Kubernetes 都会出错:

Failed to pull image "123456789.dkr.ecr.us-east-1.amazonaws.com/test-gateway:0.0.1": failed to pull and unpack image "123456789.dkr.ecr.us-east-1.amazonaws.com/test-gateway:0.0.1": failed to resolve reference "123456789.dkr.ecr.us-east-1.amazonaws.com/test-gateway:0.0.1": unexpected status from HEAD request to https://123456789.dkr.ecr.us-east-1.amazonaws.com/v2/test-gateway/manifests/0.0.1: 401 Unauthorized

如您所见,我的工作是刷新 aws ecr 的凭证。我应该保留这份工作还是使用其他方法来访问注册表?如何对 Helm Chart 进行属性配置?

amazon-web-services kubernetes-helm amazon-ecr helm3
1个回答
0
投票

您遇到的错误消息“401 Unauthorized”表示对您的 AWS ECR(弹性容器注册表)的身份验证失败。在 Helm 图表中刷新凭据的工作是一个很好的方法,但可能会出现一些配置错误或计时问题。

  1. 尝试从本地计算机手动检查 ECR 身份验证(所有相关命令)。确保 IAM、区域、令牌等正确。

  2. 时间问题。您是否尝试过确保某些资源以正确的顺序运行?考虑组织内部逻辑并利用 Helm hook 在 Helm 图表生命周期的特定阶段启动操作。这些阶段包括资源安装前或删除后等事件。 Helm 挂钩使您能够执行任务,例如执行作业、创建 ConfigMap 或管理其他 Kubernetes 对象,作为 Helm 部署过程的组成部分

在 Helm 中,有两种方式使用 hook 来管理 Kubernetes 资源:Helm Hook Annotations 和 Helm Hook Manifests。这些方法具有相似的目的,但有一些关键的区别:

Helm Hook Annotations

注释:Helm Hook 注释作为注释添加到 Helm 图表模板中的各个 Kubernetes 资源中。您可以直接在资源的元数据中指定挂钩类型(例如,安装前、安装后、升级前或升级后)。

优点:

简单:注释很容易添加到现有资源定义中。

精细控制:您可以将挂钩应用于图表中的特定资源。 缺点 -

紧耦合:钩子信息与单个资源紧密耦合,随着资源数量的增长,其中心化程度较低,且更难管理。

可见性较低:获取图表中使用的所有挂钩的概述可能具有挑战性。 示例:

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    "helm.sh/hook": pre-install
  name: my-deployment

Helm Hook Manifests

Manifests:Helm Hook Manifests 是专门为 hooks 定义 Kubernetes 资源的 YAML 文件。这些资源与主图表模板分开,通常存储在 Helm 图表内的 templates/hooks 目录中。

优点:

集中式:挂钩清单提供了一个集中的位置来定义挂钩,使它们更易于管理和维护。 关注点分离:钩子清单将钩子相关的资源与主图表模板分开,使主模板更干净、更集中。 缺点 - 需要额外文件:您需要为挂钩清单创建单独的 YAML 文件,这可能会增加图表中的文件数量。

示例:

挂钩清单文件 templates/hooks/pre-install-job.yaml:

apiVersion: batch/v1
kind: Job
metadata:
  name: pre-install-job
# ... job configuration ...

在主图表模板中,您可以引用钩子清单:

{{- include "mychart.hooks.pre-install-job" . | nindent 4 }}

让我们看看会发生什么!

参考: https://helm.sh/docs/topics/charts_hooks/

© www.soinside.com 2019 - 2024. All rights reserved.