k8s離線下載安裝包指南

因為公司部署k8s的時候需要在現(xiàn)場的內(nèi)網(wǎng)環(huán)境安裝,所以需要在無網(wǎng)環(huán)境進(jìn)行安裝k8s集群,所以在現(xiàn)場規(guī)劃設(shè)備和系統(tǒng)時,會優(yōu)先確定操作系統(tǒng)版本,保證安裝版本和操作系統(tǒng)的一致性

我們目前安裝k8s版本,采用的操作系統(tǒng)為CentOS7.9,所以本地使用虛擬機(jī)(vmware或virtualBox)創(chuàng)建一個精簡版的虛擬機(jī)。進(jìn)行離線下載安裝包

1.獲取k8s和docer的版本

 k8s&docker&Centos: [ftp://ftp.rhce.cc/k8s/*](ftp://ftp.rhce.cc/k8s/*)

2.獲取yum源依賴包

前提:Centos虛擬機(jī)必須可以聯(lián)網(wǎng)!!!要不后面都玩不下去的。

[root@master01 yum.repos.d]# rm -rf /etc/yum.repos.d/* ; wget -P /etc/yum.repos.d/ ftp://ftp.rhce.cc/k8s/*

--2022-05-05 21:15:13-- ftp://ftp.rhce.cc/k8s/*

 => ‘/etc/yum.repos.d/.listing’

Resolving ftp.rhce.cc (ftp.rhce.cc)... 101.37.152.41

Connecting to ftp.rhce.cc (ftp.rhce.cc)|101.37.152.41|:21... connected.

Logging in as anonymous ... Logged in!

==> SYST ... done. ==> PWD ... done.

==> TYPE I ... done. ==> CWD (1) /k8s ... done.

==> PASV ... done. ==> LIST ... done.

3.# 創(chuàng)建本地倉庫包

[root@master01 ~]# yum install --downloadonly --downloaddir=/root/k8sOfflineSetup/packages \

> createrepo

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

docker-ce-stable  | 3.5 kB 00:00:00

epel  | 4.7 kB 00:00:00

extras  | 2.9 kB 00:00:00

kubernetes  | 1.4 kB 00:00:00

updates | 2.9 kB 00:00:00

(1/8): epel/x86_64/group_gz | 96 kB 00:00:00

(2/8): docker-ce-stable/x86_64/primary_db | 76 kB 00:00:00

(3/8): docker-ce-stable/x86_64/updateinfo |  55 B 00:00:00

(4/8): kubernetes/primary | 108 kB 00:00:00

(5/8): extras/7/x86_64/primary_db | 246 kB 00:00:00

…………………………….

Total  938 kB/s | 1.1 MB 00:00:01

exiting because "Download Only" specified

實用工具

[root@master01 ~]# yum install --downloadonly --downloaddir=/root/k8sOfflineSetup/packages \

> yum-utils \

> nfs-utils \

> wget

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

Package wget-1.14-18.el7_6.1.x86_64 already installed and latest version

Resolving Dependencies

--> Running transaction check

---> Package nfs-utils.x86_64 1:1.3.0-0.68.el7.2 will be installed

--> Processing Dependency: libtirpc >= 0.2.4-0.7 for package: 1:nfs-utils-1.3.0-0.68.el7.2.x86_64

--> Processing Dependency: gssproxy >= 0.7.0-3 for package: 1:nfs-utils-1.3.0-0.68.el7.2.x86_64

--> Processing Dependency: rpcbind for package: 1:nfs-utils-1.3.0-0.68.el7.2.x86_64

--> Processing Dependency: quota for package: 1:nfs-utils-1.3.0-0.68.el7.2.x86_64

--> Processing Dependency: libnfsidmap for package: 1:nfs-utils-1.3.0-0.68.el7.2.x86_64

--> Processing Dependency: libevent for package: 1:nfs-utils-1.3.0-0.68.el7.2.x86_64

--> Processing Dependency: keyutils for package: 1:nfs-utils-1.3.0-0.68.el7.2.x86_64

--> Processing Dependency: libtirpc.so.1()(64bit) for package: 1:nfs-utils-1.3.0-0.68.el7.2.x86_64

--> Processing Dependency: libnfsidmap.so.0()(64bit) for package: 1:nfs-utils-1.3.0-0.68.el7.2.x86_64

--> Processing Dependency: libevent-2.0.so.5()(64bit) for package: 1:nfs-utils-1.3.0-0.68.el7.2.x86_64

………………..

Total  789 kB/s | 2.1 MB 00:00:02

exiting because "Download Only" specified

docker 依賴包

[root@master01 ~]# yum install --downloadonly --downloaddir=/root/k8sOfflineSetup/packages \

> device-mapper-persistent-data \

> lvm2

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

………………………

Total  983 kB/s | 3.8 MB 00:00:03

exiting because "Download Only" specified

docker

[root@master01 ~]# yum install --downloadonly --downloaddir=/root/k8sOfflineSetup/packages \

> docker-ce-19.03.5 \

> docker-ce-cli-19.03.5 \

> containerd.io

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

…………….

------------------------------------------------------------------------------------------------------------------------

Total  731 kB/s | 99 MB 00:02:18

exiting because "Download Only" specified

kubelet

[root@master01 ~]# yum install --downloadonly --downloaddir=/root/k8sOfflineSetup/packages \

> kubelet-1.21.0 \

> kubeadm-1.21.0 \

> kubectl-1.21.0

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

---> Package kubeadm.x86_64 0:1.21.0-0 will be installed

--> Processing Dependency: kubernetes-cni >= 0.8.6 for package: kubeadm-1.21.0-0.x86_64

--> Processing Dependency: cri-tools >= 1.13.0 for package: kubeadm-1.21.0-0.x86_64

---> Package kubectl.x86_64 0:1.21.0-0 will be installed

---> Package kubelet.x86_64 0:1.21.0-0 will be installed

--> Processing Dependency: socat for package: kubelet-1.21.0-0.x86_64

--> Processing Dependency: conntrack for package: kubelet-1.21.0-0.x86_64

--> Running transaction check

---> Package cri-tools.x86_64 0:1.23.0-0 will be installed

---> Package kubelet.x86_64 0:1.21.0-0 will be installed

--> Processing Dependency: conntrack for package: kubelet-1.21.0-0.x86_64

---> Package kubernetes-cni.x86_64 0:0.8.7-0 will be installed

---> Package socat.x86_64 0:1.7.3.2-2.el7 will be installed

--> Finished Dependency Resolution

Error: Package: kubelet-1.21.0-0.x86_64 (kubernetes)

 Requires: conntrack

 You could try using --skip-broken to work around the problem

 You could try running: rpm -Va --nofiles --nodigest

—————————————————

報錯解決:

執(zhí)行yum clean all

重新下載即可,如下:

[root@master01 ~]# yum clean all

Loaded plugins: fastestmirror

Cleaning repos: base docker-ce-stable epel extras kubernetes updates

Cleaning up list of fastest mirrors

[root@master01 ~]# yum install --downloadonly --downloaddir=/root/k8sOfflineSetup/packages kubelet-1.21.0 kubeadm-1.21.0 kubectl-1.21.0

Loaded plugins: fastestmirror

Determining fastest mirrors

base  | 3.6 kB 00:00:00

docker-ce-stable  | 3.5 kB 00:00:00

epel  | 4.7 kB 00:00:00

extras  | 2.9 kB 00:00:00

kubernetes  | 1.4 kB 00:00:00

updates | 2.9 kB 00:00:00

—————————

------------------------------------------------------------------------------------------------------------------------

Total  863 kB/s | 65 MB 00:01:16

exiting because "Download Only" specified

獲取kubeadm依賴鏡像

獲取kubeadm用到的鏡像列表,這步操作要在一臺安裝了docker的環(huán)境上操作。拉取完成后打包復(fù)制到資源包/root/k8sOfflineSetup/images目錄中。

從阿里云拉取鏡像

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.21.0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.21.0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.21.0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.21.0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.5

[root@master01 ~]# docker images

REPOSITORY TAG  IMAGE ID CREATED  SIZE

registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver v1.21.0  4d217480042e 13 months ago  126MB

registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy v1.21.0  38ddd85fe90e 13 months ago  122MB

registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler v1.21.0  62ad3129eca8 13 months ago  50.6MB

registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager  v1.21.0  09708983cc37 13 months ago  120MB

registry.cn-hangzhou.aliyuncs.com/google_containers/coredns  1.6.5  70f311871ae1 2 years ago  41.6MB

registry.cn-hangzhou.aliyuncs.com/google_containers/etcd 3.4.3-0  303ce5db0e90 2 years ago  288MB

registry.cn-hangzhou.aliyuncs.com/google_containers/pause  3.1  da86e6ba6ca1 4 years ago  742kB

重新tag鏡像 —kubeadm調(diào)用的時候必須要是google的

docker images | grep registry.cn-hangzhou.aliyuncs.com/google_containers|sed 's/registry.cn-hangzhou.aliyuncs.com\/google_containers/k8s.gcr.io/'|awk '{print "docker tag " $3 " "$1":"$2}'|sh

刪除舊鏡像

docker images | grep registry.cn-hangzhou.aliyuncs.com/google_containers|awk '{print "docker rmi " $1":"$2}'|sh

在當(dāng)前目錄導(dǎo)出鏡像為壓縮包

docker save -o kube-controller-manager-v1.21.0.tar k8s.gcr.io/kube-controller-manager:v1.21.0

docker save -o kube-apiserver-v1.21.0.tar k8s.gcr.io/kube-apiserver:v1.21.0

docker save -o kube-scheduler-v1.21.0.tar k8s.gcr.io/kube-scheduler:v1.21.0

docker save -o kube-proxy-v1.21.0.tar k8s.gcr.io/kube-proxy:v1.21.0

docker save -o coredns-1.6.5.tar k8s.gcr.io/coredns:1.6.5

docker save -o etcd-3.4.3-0.tar k8s.gcr.io/etcd:3.4.3-0

docker save -o pause-3.1.tar [k8s.gcr.io/pause:3.1](http://k8s.gcr.io/pause:3.1)

**calico網(wǎng)絡(luò)插件依賴鏡像 **

Quickstart for Calico on Kubernetes找到calico.yaml文件,命名為calico-v3.10.3.yaml保存到資源包/root/k8sOfflineSetup/plugins目錄中。

注意:當(dāng)前calico的版本3.10.3 已經(jīng)很老的,可以選擇新一點的版本,作者這邊拉取的是3.22.2,操作如下:

[root@master01 ~]# curl https://projectcalico.docs.tigera.io/manifests/calico.yaml -O

 % Total % Received % Xferd Average Speed  Time Time  Time Current

 Dload Upload  Total  Spent Left Speed

100 217k 100 217k 0  0 10633 0 0:00:20 0:00:20 --:--:-- 11727

[root@master01 ~]#

[root@master01 ~]# ls

1.sh anaconda-ks.cfg coredns-1.6.5.tar k8sOfflineSetup  kube-controller-manager-v1.21.0.tar kube-scheduler-v1.21.0.tar

2.sh calico.yaml etcd-3.4.3-0.tar  kube-apiserver-v1.21.0.tar kube-proxy-v1.21.0.tar  pause-3.1.tar

[root@master01 ~]# cat calico.yaml | grep -i "Image:"

 image: docker.io/calico/cni:v3.22.2

 image: docker.io/calico/cni:v3.22.2

 image: docker.io/calico/pod2daemon-flexvol:v3.22.2

 image: docker.io/calico/node:v3.22.2

 image: docker.io/calico/kube-controllers:v3.22.2

[root@master01 ~]# cat calico.yaml | grep -i "Image:"|awk '{print "docker pull "$2}'|sh

在當(dāng)前目錄導(dǎo)出鏡像為壓縮包

docker save -o calico-cni-v3.22.2.tar calico/cni:v3.22.2

docker save -o calico-pod2daemon-flexvol-v3.22.2.tar calico/pod2daemon-flexvol:v3.22.2

docker save -o calico-node-v3.22.2.tar calico/node:v3.22.2

docker save -o calico-kube-controllers-v3.22.2.tar calico/kube-controllers:v3.22.2

同樣拉取完成后打包復(fù)制到資源包/root/k8sOfflineSetup/images目錄中。

[root@master01 ~]# mkdir -p /root/k8sOfflineSetup/images

[root@master01 ~]# mv *.tar /root/k8sOfflineSetup/images/

自此相應(yīng)的安裝包已下載并保存完畢

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,663評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,125評論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,506評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,614評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,402評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,934評論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,021評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,168評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,690評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,596評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,784評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,288評論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,027評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,404評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,662評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,398評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,743評論 2 370

推薦閱讀更多精彩內(nèi)容