티스토리 뷰

GKE에서 docker hub에 있는 private 이미지를 pull하려면 인증이 필요하다. 이 인증을 어떤 타이밍에 어떻게 해주느냐가 관건인데, Secret을 만들고 Pod나 Deployment 생성시 Secret을 걸어주면 된다.


시크릿 생성하기

kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>

# <your-registry-server> : 프라이빗 도커 저장소의 FQDN. 도커허브는 https://index.docker.io/v2/ 이다.
# <your-name> : 도커 사용자의 계정
# <your-pword> : 도커 사용자의 비밀번호
# <your-email> : 도커 사용자의 이메일 주소

 


시크릿과 Pod 혹은 Deployment 연결하기

 Pod나 Deployment 생성하는 yaml 파일에 아래와 같이 추가해주면 된다.

...
spec:
  containers:
  - name: private-reg-container
    image: <your-private-image>
  imagePullSecrets: # 이 부분!
  - name: regcred

 그리고 Pod나 Deployment이 성공적으로 생성된 것을 확인하면 끝.


시크릿 확인하기

 위와 같은 과정으로 만든 시크릿을 확인하려면 아래의 명령어를 이용한다.

kubectl get secret regcred --output=yaml

 위 명령어의 결과 중 .dockerconfigjson을 주목하면 된다. 이것은 base64로 인코딩되어있기 때문에 디코딩해주면 결과는 아래와 같다.

{"auths":{"your.private.registry.example.com":{"username":"janedoe","password":"xxxxxxxxxxx","email":"jdoe@example.com","auth":"c3R...zE2"}}}

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

300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함