kubernetes配置secret拉取私倉映象
阿新 • • 發佈:2018-11-16
2017.05.10 19:48* 字數 390 閱讀 5216評論 0喜歡 8
對於公司內部的專案, 我們不可能使用公有開放的映象倉庫, 一般情況可能會花錢買docker
私倉服務, 或者說自己在伺服器上搭建自己的私倉, 但不管怎樣, 我們如何讓k8s
能夠拉取私有倉庫的映象
1. 登入docker
映象倉庫
這裡以阿里雲docker映象倉庫
為例
docker login --username=yin32167@aliyun.com registry.cn-hangzhou.aliyuncs.com
之後輸入密碼就可以了, 這個時候我們可以在配置檔案中檢視登入情況
cat ~/.docker/config.json
這個時候我們雖然可以通過
docker pull
命令拉取映象, 但無法通過k8s
建立pod
方式拉取
2. 生成金鑰secret
kubectl create secret docker-registry regsecret --docker-server=registry.cn-hangzhou.aliyuncs.com --docker-username=yin32167@aliyun.com --docker-password=xxxxxx --docker-email=yin32167@aliyun.com
其中:
regsecret: 指定金鑰的鍵名稱, 可自行定義
--docker-server: 指定docker
倉庫地址
--docker-username: 指定docker
倉庫賬號
--docker-password: 指定docker
倉庫密碼
--docker-email: 指定郵件地址(選填)
![](https://upload-images.jianshu.io/upload_images/938819-ba0638279141d6d4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
可以看到當前除了預設的金鑰, 還有我們剛才生成的. 另外要注意的是, 該金鑰只能在對應
namespace
使用, 也就是這裡的default
, 如果需要用到其他namespace
, 比如說test
, 就需要在生成的時候指定引數-n test
3. 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
便可以拉取映象