반응형
참고 : https://stackoverflow.com/questions/53852007/kubectl-pod-fails-to-pull-down-an-aws-ecr-image
이미지가 비공개(Private)인 경우 이미지를 가져오려면 적절한 인증을 가진 비밀을 Pod에 제공해야한다.
따라서 아래와 같은 작업이 필요하다.
- Kubernetes에 자격 증명 secret 추가
- Pod 정의에 사용할 secret 참조 추가
Kubernetes에 자격 증명 secret 추가
#!/bin/bash
ACCOUNT=222333666777 # AWS ECR 이미지 URL 맨 앞에 기재되어있는 12자리 숫자
REGION=ap-northeast-2 # 서울 리젼(예시)
SECRET_NAME=${REGION}-ecr-registry # 생성될 secret의 이름. 여기서 생성될 이름은 ap-northeast-2-ecr-registry가 되겠다.
EMAIL=bsc0227@naver.com # 임의의 이메일
TOKEN=`aws ecr --region=$REGION get-authorization-token --output text --query authorizationData[].authorizationToken | base64 -d | cut -d: -f2`
# Create or replace registry secret
microk8s.kubectl delete secret --ignore-not-found $SECRET_NAME
microk8s.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}"
Pod 정의에 사용할 secret 참조 추가
apiVersion: v1
kind: Pod
metadata:
name: foo
namespace: awesomeapps
spec:
containers:
- name: foo
image: 222333666777.dkr.ecr.ap-northeast-2.amazonaws.com/bar:latest
imagePullSecrets:
- name: ap-northeast-2-ecr-registry # 위에서 생성한 secret을 기입한다.
반응형
'개발관련 > Kubernetes' 카테고리의 다른 글
Dockerfile 여러개 두고 골라서 쓰는 방법 (0) | 2020.01.16 |
---|---|
AWS EKS에 ALB Ingress Controller 한큐에 세팅하는 스크립트 (0) | 2019.12.24 |
Kubernetes 환경 구성하기 (0) | 2019.11.15 |
Kubernetes 네트워킹 이해하기 (0) | 2019.11.15 |
AWS EKS에 대해서 (0) | 2019.09.26 |