[k8s] kubectl에서 GCR key 추가하기
GCP의 Artifact Registry에선 kublectl로 docker image에 접근하려면 secret을 추가해야 한다.
kubectl create secret docker-registry gcr-json-key --docker-server=gcr.io --docker-username=_json_key --docker-password="$(cat gcr.key)" --docker-email=deployer@my-app.iam.gserviceaccount.com
_json_key
라는 키는 예약된 것으로서, json 형식의 계정 키를 사용한다는 의미이다.
또다른 값은 jsonkey_base64
로써 json 값을 그대로 base64로 변환했을 때를 의미한다.
json 파일은 일일이 줄바꿈을 없애야 하는 등의 번거로움이 있기 때문에 base64로 사용하는 경우가 존재하는 상황을 대응하기 위함으로 보인다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: welnear
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: gcr.io/my-app/monolithic:latest
ports:
- containerPort: 80
imagePullSecrets:
- name: gcr-json-key
위의 형식을 따라 처음에 준비해놓았던 gcr-json-key
라는 시크릿을 deployment파일에 정의해야 한다.