[k8s] kubectl에서 GCR key 추가하기

·

1 min read

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파일에 정의해야 한다.