AWS ECR PULL без базовых учетных данных - PullRequest
1 голос
/ 14 марта 2019

Я развертываю кластер Azure K8s с помощью Terraform, а образ размещается в Amazon ECR.Развертывание завершается неудачно при извлечении образа из ECR со следующей ошибкой:

Failed to pull image "tooot.eu-west-1.amazonaws.com/app-t:latest": rpc error: code = Unknown desc = Error response from daemon: Get https://tooot.eu-west-1.amazonaws.com/v2/app-t/manifests/latest: no basic auth credentials

ниже приводится мой ресурс kuberentes в шаблоне terraform

  metadata {
    name = "terraform-app-deployment-example"
    labels {
      test = "app-deployment"
    }
  }

  spec {
    replicas = 6

    selector {
      match_labels {
        test = "app-deployment"
      }
    }

    template {
      metadata {
        labels {
          test = "app-deployment"
        }
      }

      spec {
        container {
          image = "toot.eu-west-1.amazonaws.com/app-t:latest"
          name  = "app"
        }
      }
    }
  }
}`

Ответы [ 2 ]

3 голосов
/ 14 марта 2019

В основном вам не хватает учетных данных для извлечения изображений из AWS.

Вам необходимо создать regcred, который содержит учетные данные для входа:

https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/

После этого вам необходимо добавить regcred в вашу конфигурацию terraform.Я не работал с шаблонами, но в спецификации развертывания вы бы добавили поле с именем imagePullSecrets.

https://www.terraform.io/docs/providers/kubernetes/r/deployment.html

Описание imagePullSecrets:

image_pull_secrets - (Необязательно) ImagePullSecrets - это необязательный список ссылок на секреты в одном и том же пространстве имен, которые можно использовать для извлечения любого изизображения, используемые этим PodSpec.Если указано, эти секреты будут переданы отдельным реализациям съемников для их использования.Например, в случае с докером учитываются только секреты типа DockerConfig

0 голосов
/ 14 марта 2019

в кластере kubernetes вы должны добавить секрет, который будет использоваться для входа в ECR во время извлечения изображения

ECR управлял токеном для проталкивания и извлечения изображений. Токен действителен в течение 12 часов

пожалуйста, проверьте токен в ECR

Я написал сценарий оболочки для этого, вы также можете проверить его

он получает токен из aws ECR, удаляя старый секрет в кластере kubernetes и снова создавая новый секрет в кластере kubernetes. какой секрет будет использоваться для извлечения изображения из aws ecr.

, поскольку я проверяю, нет никакого секрета в опции спецификации контейнера

Вы можете проверить больше здесь:

https://github.com/harsh4870/ECR-Token-automation/blob/master/aws-token.sh

...