1. 需要在 k8s 建立一個 secret,記得把下面的 $SECRETNAME替換成你自己的
kubectl create secret docker-registry $SECRETNAME \
  --docker-server=https://gcr.io \
  --docker-username=_json_key \
  [email protected] \
  --docker-password="$(cat gcr-token.json)"
  1. 在 deployment.yaml 裡面使用 imagePullSecrets,然後把 <you_secret_name> 更換成你的 SECRETNAME
apiVersion: v1
kind: Pod
metadata:
  name: <pod_name>
spec:
  containers:
    - name: <container_name>
      image: gcr.io/<registry_name>/<image_name>:<tagname>
  imagePullSecrets:
      - name: <your_secret_name>

如果使用 Rancher

  1. 必須先透過介面建立一筆 registry ( 記得 url 不可以包含 "http" or "https", 例如: 使用 google container registry 需要填 gcr.io)
  2. 透過 UI 建立 workload, 在 docker image 的部分填寫 gcr.io/xxxx/xxx, 這時候 rancher 會自動把 imagePUllSecret 加入到 deployment yaml 裡面

Reference:
http://docs.heptio.com/content/private-registries/pr-gcr.html