本博客基于https://www.cnrancher.com/docs/rancher/v2.x/cn/installation/air-gap-installation/ha/ 官方文档补充和完善,主要是博主按照官网文档操作时,遇到一些问题,这里作为重点说明
harbor离线仓库搭建,参见harbor官网和我的install-harbor 文档,注意的时,如果用https协议,需要启用域名的,自定义域名要配置/etc/hosts 把自定义域名加进去
可以利用脚本执行
./rancher-load-images.sh -l rancher-images.txt -i rancher-images.tar.gz -r 仓库地址/library
或者其他项目名称,如提前创建一个rancher
./rancher-load-images.sh -l rancher-images.txt -i ./rancher-images.tar.gz -r 172.16.35.31:1180/rancher
上面脚本和所需镜像获取,参考官方文档
https://www.cnrancher.com/docs/rancher/v2.x/cn/installation/air-gap-installation/ha/prepare-private-registry/
这些二进制文件,下载地址https://www.cnrancher.com/docs/rancher/v2.x/cn/install-prepare/download/
./create_self-signed-cert.sh --ssl-domain=rancher.czl.com --ssl-trusted-ip=192.16.1.101
剩下步骤按照官网文档:https://www.cnrancher.com/docs/rancher/v2.x/cn/installation/air-gap-installation/ha/install-kube/ 但是特别要注意下面事项
nodes:
- address: 192.16.1.101 # node air gap network IP
user: zhenglin
role: [ "controlplane", "etcd", "worker" ]
private_registries:
- url: reg.czl.com/library #如果用的私有签名https协议的harbor,此处用域名,不用IP,另外如果rancher镜像导入到library项目,URL需要带上library;如果是http协议的直接填ip就可以
user: admin
password: "P@ssw0rd"
is_default: true
[root@Centos76 cert]# docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.13.1 reg.czl.com/library/rancher/tiller:v2.13.1
[root@Centos76 cert]# docker push reg.czl.com/library/rancher/tiller:v2.13.1
安装tiller
helm init --skip-refresh \
--service-account tiller \
--tiller-image reg.czl.com/library/rancher/tiller:v2.13.1
helm install ../chart/rancher \
--name rancher \
--namespace cattle-system \
--set hostname=rancher.czl.com \
--set ingress.tls.source=secret \
--set privateCA=true \
--set rancherImage=reg.czl.com/library/rancher/rancher
--set ingress.tls.source=secret
没有换行符 所以不能直接粘贴用,set rancherImage时,后面rancher的版本不要带上tag,因为默认他会自动寻找,以下是带上v2.2.2的tag 出现的异常rancher-6f78c5bc69-g9djv 0/1 InvalidImageName 0 2m57s
kubectl -n cattle-system edit deploy rancher
image: reg.czl.com/library/rancher/rancher:v2.2.2:v2.2.2
可以看出 镜像的tag 被追加了
kubectl -n cattle-system create \
secret tls tls-rancher-ingress \
--cert=./tls.crt \
--key=./tls.key
kubectl -n cattle-system \
create secret generic tls-ca \
--from-file=cacerts.pem
如下操作和在线安装文档一样