kubernetes 에서 private registry 사용 (ImagePullError)

container image url

잘못된 경우 이미지를 가져올수 없다.

비밀번호를 설정해줘야할수 있다.

노드에 접속해서 docker-login을 하고 터미널에서 docker pull을 하면 이미지를 가져온다.

그런데 스피네커를 통해서 디플로이만 하면 ImagePullError 에러 발생

이런 경우는 private registry를 사용시 네임 스페이스마다 secret을 생성해줘야한다.

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

이렇게 하면 스피네커가 배포하고 나면 쿠베가 레지스트리에서 잘 가져온다.

쿠버네티스 yml은 다음처럼 imagepullsecret 추가되야함.

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  annotations:
    strategy.spinnaker.io/max-version-history: '2'
    traffic.spinnaker.io/load-balancers: '["service auth"]'
  labels:
    tier: auth
  name: auth
  namespace: prod
spec:
  replicas: 1
  selector:
    matchLabels:
      tier: auth
  template:
    metadata:
      labels:
        tier: auth
    spec:
      containers:
        - image: 'registry.publishapi.com:5000/auth-server:${trigger["tag"]}'
          imagePullPolicy: Always
          name: auth
      imagePullSecrets:   # 이부분 추가
        - name: my-registry # 이부분 추가
teamsmiley's profile image

teamsmiley

2019-01-31 00:00

Read more posts by this author