https://www.jianshu.com/p/fd13c2762d81
私有倉庫雖然可以通過docker pull
命令拉取鏡像, 但無法通過k8s
創建pod
方式拉取。因爲沒有配置祕鑰。
1、生成密鑰secret 【
以阿里雲docker鏡像倉庫
爲例】
kubectl create secret docker-registry regsecret \
--docker-server=registry.cn-hangzhou.aliyuncs.com \
[email protected] \
--docker-password=xxxxxx \
[email protected]
其中:
regsecret: 指定密鑰的名稱, 可自行定義
--docker-server: 指定docker倉庫地址
--docker-username: 指定docker倉庫賬號
--docker-password: 指定docker倉庫密碼
--docker-email: 指定郵件地址(選填)
要注意的是, 該密鑰只能在對應namespace
使用, 默認爲default
, 如果需要用到其他namespace
, 比如說test
, 就需要在生成的時候指定參數 -n test 。
2、yml
文件加入密鑰參數
containers:
- name: channel
image: registry-internal.cn-hangzhou.aliyuncs.com/yin32167/channel:dev-1.0
ports:
- containerPort: 8114
imagePullSecrets:
- name: regsecret
其中imagePullSecrets
是聲明拉取鏡像時需要指定密鑰, regsecret
必須和上面生成密鑰的名稱一致, 另外檢查一下pod
和密鑰是否在同一個namespace
, 之後k8s
便可以拉取鏡像