作者簡介
王海龍,SUSE/Rancher中國社區技術經理,負責Rancher中國技術社區的維護和運營。擁有7年的雲計算領域經驗,經歷了OpenStack到Kubernetes的技術變革,無論底層操作系統Linux,還是虛擬化KVM或是Docker容器技術都有豐富的運維和實踐經驗。
前 言
離線安裝部署可以讓企業在內網環境順利運行Rancher,但是在國內網絡環境中進行Rancher離線安裝時,由於鏡像本身較大以及網絡的影響下載所需的鏡像耗時較長。
Rancher 提供的 rancher-images.txt 有 100+個鏡像,壓縮后的大小也將近 8G。從 Rancher release(https://github.com/rancher/rancher/releases) 下載的 rancher-save-images.sh 默認從 dockerhub 拉取鏡像。如果所有鏡像都從 dockerhub 下載,那將是一個非常艱巨的任務。
為了進一步提升國內用戶體驗,Rancher 針對國內環境做了一些優化, 在 rancher-save-images.sh 中增加了 --from-aliyun true 參數, 來支持從國內的阿里雲鏡像倉庫去拉取 rancher-images.txt 的鏡像。
注意:
- 從 Rancher v2.4.15 和 v2.5.8 開始支持--from-aliyun true 參數。
- 從 Rancher release 中下載的 rancher-save-images.sh 暫不支持 --from-aliyun
true 參數。 - 支持 --from-aliyun true 參數的 rancher-save-images.sh 可以從http://mirror.rancher.cn --> rancher 獲得。
操作步驟
1、獲取支持 --from-aliyun true 參數的 rancher-save-images.sh
瀏覽器訪問 http://mirror.rancher.cn,然后導航到 rancher 目錄下,選擇對應的 rancher 版本,下載 rancher-save-images.sh。rancher-images.txt 和 rancher-load-images.sh 從 http://mirror.rancher.cn 或 Rancher release 下載均可,無差別。
2、從阿里雲鏡像倉庫拉取鏡像並打包
root@ip-172-31-21-94:~/image# ./rancher-save-images.sh -h
USAGE: ./rancher-save-images.sh [--image-list rancher-images.txt] [--images rancher-images.tar.gz] [--from-aliyun true]
[-l|--image-list path] text file with list of images; one image per line.
[-i|--images path] tar.gz generated by docker save.
[--from-aliyun true|false] get an image from aliyun
[-h|--help] Usage message
root@ip-172-31-21-94:~/image#
root@ip-172-31-21-94:~/image# ./rancher-save-images.sh --from-aliyun true
Image pull success: registry.cn-hangzhou.aliyuncs.com/rancher/busybox
Image pull success: registry.cn-hangzhou.aliyuncs.com/rancher/backup-restore-operator:v1.0.4-rc4
Image pull success: registry.cn-hangzhou.aliyuncs.com/rancher/cis-operator:v1.0.4
Image pull success: registry.cn-hangzhou.aliyuncs.com/rancher/configmap-reload:v0.3.0-rancher4
Image pull success: registry.cn-hangzhou.aliyuncs.com/rancher/coredns-coredns:1.6.2
...
從以上日志中可以看出使用 --from-aliyun true 指定了從阿里雲鏡像倉庫拉取鏡像,速度比從 dockerhub 拉鏡像快了 N 倍。
腳本執行成功后會在當前目錄生成 rancher-images.tar.gz 的鏡像壓縮包。
3、推送鏡像到私有鏡像庫
這一步,你將使用腳本將文件 rancher-images.tar.gz 中的鏡像上傳到您自己的私有鏡像庫。
文件 rancher-images.txt 、 rancher-images.tar.gz 應該和 rancher-load-images.sh 腳本在同一目錄下。
登錄私有鏡像庫
docker login harbor.kingsd.top
推送鏡像
./rancher-load-images.sh --registry harbor.kingsd.top
等待執行成功后,就可以在私有鏡像倉庫中看到所有 Rancher 需要的鏡像已經上傳完畢。
后 記
本文的操作步驟和Rancher官方文檔的離線安裝基本相同,只不過在本文中 rancher-save-images.sh 從 http://mirror.rancher.cn 下載,並且在執行 rancher-save-images.sh 時增加了 --from-aliyun true 參數來指定從阿里雲鏡像倉庫下載。
希望通過這篇文章可以大大提升Rancher國內用戶的離線安裝體驗,如果有任何Rancher相關的經驗分享或是使用疑問歡迎掃描文末二維碼加入技術交流群,和各位Rancher用戶一起交流。