이 페이지는 Secret을 사용하여 Private Docker Registry에서 이미지를 가져오는 Pod를 만드는 방법을 보여줍니다.
상세한 내용은 아래 링크를 참고하세요.

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

Docker Private Registry에 로그인

개인 이미지를 가져오려면 Registry로 인증해야합니다.

docker login YOUR_REPOSITORY_URI

config.json 파일을 조회합니다. 해당 Repository에 대한 인증 토큰 정보가 출력됩니다.

$ cat ~/.docker/config.json
{
    "auths": {
        "YOUR_REPOSITORY_URI": {
            "auth": "c3R...zE2"
        }
    }
}

인증 토큰을 사용하여 Secret 생성하기

Kubernetes 클러스터는 docker-registry 유형의 Secret을 사용하여 컨테이너 레지스트리로 인증하여 개인 이미지를 가져옵니다.

이 Secret 만들어서 이름을 regcred로 지정하십시오.

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 : Private Docker Registry FQDN.
  • your-name : Docker username.
  • your-pword : Docker password.
  • your-email : Docker email.

Secret 확인하기

regcred Secret 내용 조회

$ kubectl get secret regcred --output=yaml
apiVersion: v1
data:
  .dockercfg: eyJodHRwczovL2luZGV4L ... J0QUl6RTIifX0=
kind: Secret
metadata:
  ...
  name: regcred
  ...
type: kubernetes.io/dockercfg

.dockercfg 정보 Decode

$ kubectl get secret regcred --output="jsonpath={.data.\.dockercfg}" | base64 --decode
{"auths":{"yourprivateregistry.com":{"username":"janedoe","password":"xxxxxxxxxxx","email":"jdoe@example.com","auth":"c3R...zE2"}}}

인증 토큰 조회

$ echo "c3R...zE2" | base64 -d
janedoe:xxxxxxxxxxx

Secret을 사용하여 Pod 생성하기

Pod yaml 생성

$ vi my-private-reg-pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: private-reg
spec:
  containers:
  - name: private-reg-container
    image: <your-private-image>
  imagePullSecrets:
  - name: regcred

Pod 배포. 정상적으로 완료했다면 이미지를 Docker Private Registry로 부터 가져오고 Pod가 Running 상태로 변경됩니다.

$ kubectl create -f my-private-reg-pod.yaml