반응형
감사합니다 너무 좋은 정보였습니다.
Kubernetes에서 AWS ECR의 이미지를 내려받을 때 rpc error: code = Unknown desc = failed to pull and unpack image 에
참고 : https://stackoverflow.com/questions/53852007/kubectl-pod-fails-to-pull-down-an-aws-ecr-image kubectl pod fails to pull down an AWS ECR image step 1 sudo $(aws ecr get-login --no-include-email..
bscnote.tistory.com
실습
1. 먼저 변수를 지정해야합니다.
ACCOUNT=0402177XXXXX #사용자 Root 계정의 Account ID 입니다
REGION=ap-northeast-2
SECRET_NAME=${REGION}-ecr-registry #kubernetes Secret 이름입니다. 나중에 확인해봅시다!
EMAIL=spwdlask123@gmail.com #임의 이메일입니다
TOKEN=`aws ecr --region=$REGION get-authorization-token --output text --query authorizationData[].authorizationToken | base64 -d | cut -d: -f2`
2. 지정이 완료되면 Kubernetes Secret를 생성해주도록 하겠습니다.
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}"
3. 생성 확인을 합니다.
또는 kubectl get secret, kubectl describe secret ap-northeast-2ecr-registry를 사용합니다. Token을 확인하고 싶다면? kubectl get secret ap-northeast-2-ecr-registry --output=yaml을 이용합니다.
- kubectl get secret
- kubectl describe secret ap-northeast-2-ecr-registry: 실행하면 토큰이 눈에 보이지는 않지만, dockerconfigjson을 통해서 어느정도에 데이터가 있는지 bytes로 표시됩니다.
- kubectl get secret ap-northeast-2-ecr-registry --output=yaml
- 토큰 값만 출력 - kubectl get secret ap-northeast-2-ecr-registry --output="jsonpath={.data.\.dockerconfigjson}" | base64 --decode
결과는 아래 형태일 겁니다!!
{"auths":{"your.private.registry.example.com":{"username":"janedoe","password":"xxxxxxxxxxx","email":"jdoe@example.com","auth":"c3R...zE2"}}}
4. 그럼 이제 이 secret을 사용하기!!
cat << EOF > deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: front
labels:
app: ecr
spec:
replicas: 2
selector:
matchLabels:
app: ecr
template:
metadata:
labels:
app: ecr
spec:
containers:
- name: ecr-container
image: xxxxxxxxxx23.dkr.ecr.ap-northeast-2.amazonaws.com/wsi-ecr-repo:latest
ports:
- containerPort: 80
imagePullSecrets:
- name: ap-northeast-2-ecr-registry
EOF
kubectl apply -f deployment.yaml
5. 이제 container에 상태를 확인해보겠습니다.
성공 !! 오늘 하루도 이팅하세용
반응형
'2022년 전에 정리한 문서들' 카테고리의 다른 글
EKS - Containerd Runtime 사용하기 (0) | 2022.08.23 |
---|---|
EKS - Amazon EBS CSI driver add on (0) | 2022.08.23 |
EKS Node에 Pod를 생성하면 실은 DockerContainer가 .... (0) | 2022.08.23 |
ReplicaSet (0) | 2022.08.23 |
ECR Permissions (1) | 2022.08.22 |