harbor 사용 시, unauthorized: unauthorized to access repository

김건호·2023년 2월 8일
1

에러상황

pod에서 harbor에 저장 된 이미지를 지정하여 생성하였는데 unauthorized: unauthorized to access repository 라는 메시지가 출력되며 ImagePullBackOff 상태가 되었습니다.

Failed to pull image 
"harbor.192..nip.io/reviews/reviews:f4": 
rpc error: code = Unknown desc = Error reading manifest f4 in 
harbor.192..nip.io/reviews/reviews: 
unauthorized: unauthorized to access repository: 
reviews/reviews, action: pull: 
unauthorized to access repository: reviews/reviews, action: pull

원인

Project registry가 private여서 인증을 위해선 imagePullSecrets이 필요한데, 정의를 해주지 않아 생긴 에러였습니다.

해결

아래와 같이 imagePullSecrets를 추가하여 해결 할 수 있습니다.

apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
  name: testapp
  labels:
    app: testapp
    app: reviews
spec:
  selector:
    matchLabels:
      app: testapp
      app: reviews
  template:
    metadata:
      labels:
        app: testapp
        app: reviews
    spec:
      imagePullSecrets: 
      - name: kenimg <---
      containers:
        - name: tmaxtestapp
          image: harbor.192..nip.io/reviews/reviews:f4
          ports:
            - name: port
              protocol: TCP
              containerPort: 9080
  strategy:
    canary:
      maxSurge: 1
      maxUnavailable: 0
      steps:
      - setWeight: 25
      #- pause: { duration: 10s }
      - pause: {}

Secrets 의 경우 같은 네임스페이스에 존재해야합니다.
EX ) A라는 네임스페이스의 시크릿을 B라는 네임스페이스 파드에서 사용할 수 없습니다.
A/시크릿이름과 같은 형식처럼 네임스페이스를 앞에 선언해주더라도 사용이 불가능합니다.

참고자료

https://stackoverflow.com/questions/46297949/sharing-secret-across-namespaces

profile
Ken, 🔽🔽 거노밥 유튜브(house icon) 🔽🔽

0개의 댓글