使用场景:
在客户环境中不能上外网前提下,部署rancher k8s 环境
需要提前准备rancher相关镜像到自己机器的harbor仓库中。
harbor搭建,参考:https://www.cnblogs.com/leozhanggg/p/12554399.html 我使用里面的离线安装方式。使用里面的证书第一种,在/data/cert下执行那条命令。并修改/etc/hosts文件把本机ip 和harbor域名进行绑定。
遇到的坑如下,在这台机器上执行docker login harbor的域名失败。
解决方法如下在 /etc/docker/daemon.json 配置如:
{
"registry-mirrors": ["https://k9e55i4n.mirror.aliyuncs.com"], #镜像加速地址,因为rancher 镜像在国外比较慢,这里需要加速
"insecure-registries": ["harbor.test.com"] # Docker如果需要从非SSL源管理镜像,这里加上。
}
好进入正题
从rancher 官网查找
https://rancher2.docs.rancher.cn/
找到离线安装点进去
点进下图红框
一定要自己看以下官方文档说明就基本明白什么意思了,点进版本管理页面会跳转到github上面。
我这里简单说下
rancher-images.txt 这里面是你要下载镜像的地址
rancher-save-images.sh 这个是执行下载命令脚本
rancher-load-images.sh 这是上传到你自己harbor的脚本
这三个脚本是在Assets下,比较隐蔽。实际中,你只需要下载这rancher文档说的这三个既可
这三个脚本非常好用,你可以根据这三个脚本进行变种。你认真看下rancher-save-images.sh 和 rancher-load-images.sh 在实际应用中,我们只需要修改文件头两行的
images="rancher-images.tar.gz"
list="rancher-images.txt"
就可以去下载和上传我们想要的镜像
下载rancher 镜像
需要耗一定时间,这个时候,你可以去看部电影了
chmod +x rancher-save-images.sh
./rancher-save-images.sh --image-list ./rancher-images.txt
上传到自己的harbor仓库
#docker login <REGISTRY.YOURDOMAIN.COM:PORT>
docker login harbor.test.com
chmod +x rancher-load-images.sh
#./rancher-load-images.sh --image-list ./rancher-images.txt --registry <REGISTRY.YOURDOMAIN.COM:PORT>`
/rancher-load-images.sh --image-list ./rancher-images.txt --registry harbor.test.com