對(duì)于公司內(nèi)部的項(xiàng)目, 我們不可能使用公有開(kāi)放的鏡像倉(cāng)庫(kù), 一般情況可能會(huì)花錢(qián)買(mǎi) docker
私倉(cāng)服務(wù), 或者說(shuō)自己在服務(wù)器上搭建自己的私倉(cāng), 但不管怎樣, 我們?nèi)绾巫?code>k8s能夠拉取私有倉(cāng)庫(kù)的鏡像
1. 登錄docker
鏡像倉(cāng)庫(kù)
這里以阿里云docker鏡像倉(cāng)庫(kù)
為例
docker login --username=yin32167@aliyun.com registry.cn-hangzhou.aliyuncs.com
之后輸入密碼就可以了, 這個(gè)時(shí)候我們可以在配置文件中查看登錄情況
cat ~/.docker/config.json
這個(gè)時(shí)候我們雖然可以通過(guò)
docker pull
命令拉取鏡像, 但無(wú)法通過(guò)k8s
創(chuàng)建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: 指定密鑰的鍵名稱(chēng), 可自行定義
--docker-server: 指定docker
倉(cāng)庫(kù)地址
--docker-username: 指定docker
倉(cāng)庫(kù)賬號(hào)
--docker-password: 指定docker
倉(cāng)庫(kù)密碼
--docker-email: 指定郵件地址(選填)
[圖片上傳失敗...(image-c0b087-1527925845859)]
可以看到當(dāng)前除了默認(rèn)的密鑰, 還有我們剛才生成的. 另外要注意的是, 該密鑰只能在對(duì)應(yīng)
namespace
使用, 也就是這里的default
, 如果需要用到其他namespace
, 比如說(shuō)test
, 就需要在生成的時(shí)候指定參數(shù)-n test
3. yml
文件加入密鑰參數(shù)
containers:
- name: channel
image: registry-internal.cn-hangzhou.aliyuncs.com/yin32167/channel:dev-1.0
ports:
- containerPort: 8114
imagePullSecrets:
- name: regsecret
其中
imagePullSecrets
是聲明拉取鏡像時(shí)需要指定密鑰,regsecret
必須和上面生成密鑰的鍵名一致, 另外檢查一下pod
和密鑰是否在同一個(gè)namespace
, 之后k8s
便可以拉取鏡像
參照官方文檔 https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry
作者:殷臨風(fēng)
鏈接:http://www.reibang.com/p/fd13c2762d81
來(lái)源:簡(jiǎn)書(shū)
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處同木。