K8S 使用 private docker registry
- 需要在 k8s 建立一個
secret
,記得把下面的$SECRETNAME
替換成你自己的
kubectl create secret docker-registry $SECRETNAME \
--docker-server=https://gcr.io \
--docker-username=_json_key \
--docker-email=user@example.com \
--docker-password="$(cat gcr-token.json)"
- 在 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
- 必須先透過介面建立一筆 registry ( 記得 url 不可以包含 "http" or "https", 例如: 使用 google container registry 需要填
gcr.io
) - 透過 UI 建立 workload, 在 docker image 的部分填寫
gcr.io/xxxx/xxx
, 這時候 rancher 會自動把 imagePUllSecret 加入到 deployment yaml 裡面
Reference:
http://docs.heptio.com/content/private-registries/pr-gcr.html