1. 程式人生 > >kubernetes配置secret拉取私倉鏡像

kubernetes配置secret拉取私倉鏡像

user package 評論 fault pod count 分享圖片 def secret


2017.05.10 19:48* 字數 390 閱讀 5216評論 0

對於公司內部的項目, 我們不可能使用公有開放的鏡像倉庫, 一般情況可能會花錢買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: 指定郵件地址(選填)

技術分享圖片

可以看到當前除了默認的密鑰, 還有我們剛才生成的. 另外要註意的是, 該密鑰只能在對應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便可以拉取鏡像

kubernetes配置secret拉取私倉鏡像