Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

137
Visualizações
Cómo extraer un contenedor privado de AWS ECR a un clúster local

Actualmente tengo problemas para intentar extraer mi imagen acoplable remota alojada a través de AWS ECR. Recibo este error cuando ejecuto una implementación

Paso 1)

correr

 aws ecr get-login-password --region cn-north-1 | docker login --username AWS --password-stdin xxxxxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn

Paso 2)

ejecuta kubectl create -f backend.yaml

a partir de aquí pasa lo siguiente:

 ➜ backend git:(kubernetes-fresh) ✗ kubectl get pods NAME READY STATUS RESTARTS AGE backend-89d75f7df-qwqdq 0/1 Pending 0 2s ➜ backend git:(kubernetes-fresh) ✗ kubectl get pods NAME READY STATUS RESTARTS AGE backend-89d75f7df-qwqdq 0/1 ContainerCreating 0 4s ➜ backend git:(kubernetes-fresh) ✗ kubectl get pods NAME READY STATUS RESTARTS AGE backend-89d75f7df-qwqdq 0/1 ErrImagePull 0 6s ➜ backend git:(kubernetes-fresh) ✗ kubectl get pods NAME READY STATUS RESTARTS AGE backend-89d75f7df-qwqdq 0/1 ImagePullBackOff 0 7s

Entonces, ejecuto kubectl describe pod backend y generará:

 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 117s default-scheduler Successfully assigned default/backend-89d75f7df-qwqdq to minikube Normal Pulling 32s (x4 over 114s) kubelet, minikube Pulling image "xxxxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn/baopals:latest" Warning Failed 31s (x4 over 114s) kubelet, minikube Failed to pull image "xxxxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn/baopals:latest": rpc error: code = Unknown desc = Error response from daemon: Get https://xxxxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn/v2/baopals/manifests/latest: no basic auth credentials Warning Failed 31s (x4 over 114s) kubelet, minikube Error: ErrImagePull Warning Failed 19s (x6 over 113s) kubelet, minikube Error: ImagePullBackOff Normal BackOff 4s (x7 over 113s) kubelet, minikube Back-off pulling image "xxxxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn/baopals:latest"

el error principal es que no basic auth credentials

Ahora, lo que me confunde es que puedo enviar imágenes a mi ECR bien y también puedo enviarlas a mi clúster EKS remoto. Siento que esencialmente lo único que no puedo hacer en este momento es extraer de mi repositorio privado que está alojado en ECR.

¿Hay algo obvio que me estoy perdiendo aquí que me impide extraer repositorios privados para poder usarlos en mi máquina local?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Para obtener la imagen de ECR localmente, debe iniciar sesión en ECR y obtener la imagen de la ventana acoplable. mientras que si está en Kubernetes, debe usar secret para almacenar los detalles de inicio de sesión de ECR y usarlo cada vez para extraer imágenes de ECR.

Aquí, el script de shell si está en Kubernetes, tomará automáticamente los valores de la configuración de AWS o, de lo contrario, puede actualizar las variables al inicio del script.

 ACCOUNT=$(aws sts get-caller-identity --query 'Account' --output text) #aws account number REGION=ap-south-1 #aws ECR region SECRET_NAME=${REGION}-ecr-registry #secret_name EMAIL=abc@xyz.com #can be anything TOKEN=`aws ecr --region=$REGION get-authorization-token --output text --query authorizationData[].authorizationToken | base64 -d | cut -d: -f2` kubectl delete secret --ignore-not-found $SECRET_NAME kubectl create secret docker-registry $SECRET_NAME \ --docker-server=https://$ACCOUNT.dkr.ecr.${REGION}.amazonaws.com \ --docker-username=AWS \ --docker-password="${TOKEN}" \ --docker-email="${EMAIL}"

imagePullSecret utilizado en el archivo YAML para extraer secretos de almacenamiento para repositorios docker privados.

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

over 4 years ago · Santiago Trujillo Relatório

0

Cuando un nodo en su clúster lanza un contenedor, necesita las credenciales para acceder al registro privado para extraer la imagen. Incluso si se ha autenticado en su máquina local, el nodo no puede reutilizar el inicio de sesión porque, por diseño, podría estar ejecutándose en otra máquina; por lo que debe proporcionar las credenciales en la plantilla del pod. Siga esta guía para hacerlo:

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

Básicamente, almacena las credenciales de ECR como un secreto y las proporciona en el imagePullSecret de la especificación del contenedor. El pod podrá extraer la imagen cada vez.

Si está desarrollando con su clúster ejecutándose en una máquina local, ni siquiera necesita hacer eso. Puede hacer que el pod reutilice la imagen que descargó en su caché local configurando imagePullPolicy en la especificación del contenedor en IfNotPresent o usando una etiqueta específica en lugar de la latest para su imagen.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda