為了解決kubeadm在初始化集群時(shí)岂丘,需要從谷歌官網(wǎng)下載image棠笑,而網(wǎng)絡(luò)被墻的問題辉词。
在阿里云代碼或者github上創(chuàng)建7個(gè)倉庫,名稱分別為:kube-apiserver闸度,kube-controller-manager竭贩,kube-scheduler,kube-proxy莺禁,pause留量,etcd,coredns。
以下以阿里云代碼進(jìn)行示范肪获。
創(chuàng)建代碼倉庫
登錄阿里云代碼寝凌,創(chuàng)建一個(gè)空倉庫kube-apiserver
,可見等級(jí)可以設(shè)置為public孝赫。
# 創(chuàng)建了一個(gè)空代碼倉庫之后较木,在你本地執(zhí)行如下命令,git鏈接請?zhí)鎿Q成自己的
git clone git@code.aliyun.com:272904483/kube-apiserver.git
cd kube-apiserver
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
創(chuàng)建鏡像倉庫
創(chuàng)建命名空間
創(chuàng)建一個(gè)命名空間青柄,名稱自定伐债,我用的是k8s-kubeadm-mirror
,設(shè)置為公有致开。-
創(chuàng)建鏡像倉庫
創(chuàng)建一個(gè)鏡像倉庫峰锁,地域選擇一個(gè)國內(nèi)的,命名空間選擇上面創(chuàng)建的k8s-kubeadm-mirror
双戳,倉庫名稱為kube-apiserver
虹蒋,倉庫類型選擇公開,如下圖:
點(diǎn)擊“下一步”飒货,開始關(guān)聯(lián)鏡像倉庫與代碼倉庫魄衅。
選擇云code,也就是我們上面創(chuàng)建的阿里云代碼源塘辅,選擇好倉庫晃虫,這里是272904483/kube-apiserver
,勾選代碼變更時(shí)自動(dòng)構(gòu)建鏡像和海外機(jī)器構(gòu)建扣墩,然后點(diǎn)擊創(chuàng)建鏡像倉庫哲银。
3、管理鏡像倉庫
開始管理鏡像倉庫呻惕,進(jìn)入鏡像倉庫管理頁面荆责。
可以看到創(chuàng)建完成后,默認(rèn)就有一條自動(dòng)構(gòu)建規(guī)則亚脆,規(guī)則內(nèi)容如下:
當(dāng)代碼倉庫中tag為release-v1.2.3的代碼觸發(fā)構(gòu)建時(shí)做院,會(huì)自動(dòng)構(gòu)建版本為1.2.3的鏡像;當(dāng)存在代碼tag為1.2.3的自定義構(gòu)建規(guī)則時(shí)型酥,以自定義構(gòu)建規(guī)則為準(zhǔn)山憨。
開始構(gòu)建
在你本地電腦上,在第一步創(chuàng)建的git倉庫中弥喉,新建Dockerfile文件郁竟,并執(zhí)行相關(guān)操作即可。如下:
# 進(jìn)入本地git代碼庫由境,就在master分支上工作即可棚亩。
cd kube-apiserver
# 新建文件Dockerfile
vim Dockerfile
# 寫入如下內(nèi)容蓖议,構(gòu)建命令非常簡單:從谷歌的鏡像開始構(gòu)建,然后加上維護(hù)人信息
From k8s.gcr.io/kube-apiserver:v1.12.3
MAINTAINER chenzheng <272904483@qq.com>
# 提交版本
git add Dockerfile
git commit -m "add Dockerfile"
# 一定要打上tag讥蟆,并按照如下格式
git tag -a release-v1.12.3 -m "version 1.12.3"
# 將tag對應(yīng)版本勒虾,push到倉庫,就會(huì)開始自動(dòng)構(gòu)建過程
git push origin release-v1.12.3
然后進(jìn)入阿里云容器鏡像服務(wù)
頁面就可以看到如下信息:
之后瘸彤,針對
kube-apiserver
這個(gè)鏡像修然,你如果需要其他的版本,修改完Dockerfile里面的版本信息后质况,重復(fù)上面的步驟即可自動(dòng)構(gòu)建愕宋。
使用鏡像
在需要使用kubeadm進(jìn)行k8s集群安裝的機(jī)器上,拉取鏡像结榄,并重命名中贝。
# 拉取鏡像
docker pull registry.cn-shenzhen.aliyuncs.com/k8s-kubeadm-mirror/kube-apiserver:1.12.3
# 重命名
docker tag registry.cn-shenzhen.aliyuncs.com/k8s-kubeadm-mirror/kube-apiserver:1.12.3 k8s.gcr.io/kube-apiserver:v1.12.3
# 查看鏡像
[root@k8s-node2 ~]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
k8s.gcr.io/kube-apiserver v1.12.3 a197e26bc609 12 minutes ago 194MB
registry.cn-shenzhen.aliyuncs.com/k8s-kubeadm-mirror/kube-apiserver 1.12.3 a197e26bc609 12 minutes ago 194MB
hello-world latest 4ab4c602aa5e 2 months ago 1.84kB
這樣kubeadm就不會(huì)去官方拉取鏡像,而使用本地鏡像了臼朗。