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