环境介绍
已有RKE集群:rke:1.4.7 docker:20.10.9 k8s:1.26.6/docker
开始安装
一、安装helm
- 下载helm安装包,解压
参考官网:https://helm.sh/zh/docs/ - 添加仓库
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
二、生成私有证书
- 生成证书:
./create_self-signed-cert.sh --ssl-domain=rancher.test.cn
脚本见rancher官网:http://docs.rancher.cn/docs/rancher2.5/installation/resources/advanced/self-signed-ssl/_index/#41-%E4%B8%80%E9%94%AE%E7%94%9F%E6%88%90-ssl-%E8%87%AA%E7%AD%BE%E5%90%8D%E8%AF%81%E4%B9%A6%E8%84%9A%E6%9C%AC
- 创建secret
自行切到相关目录
kubectl create namespace cattle-system
kubectl -n cattle-system create secret generic tls-ca --from-file=cacerts.pem=./cacerts.pem
kubectl -n cattle-system create secret tls tls-rancher-ingress --cert=tls.crt --key=tls.key
三、安装rancher
helm install rancher rancher-stable/rancher \
--namespace cattle-system \
--set hostname=rancher.test.cn \
--set bootstrapPassword=admin \
--set ingress.tls.source=secret \
--set privateCA=true
离线安装方式
- 拉取helm chart
helm pull rancher-stable/rancher
- 解压文件
tar xf rancher-2.7.5.tgz
- 准备镜像
找一台外网机拉取对应镜像版本,做成离线包
导入到要安装的机器 - 生成私有证书(方法同在线)
- 安装
helm install rancher rancher-stable/rancher \
--namespace cattle-system \
--set hostname=rancher.test.cn \
--set bootstrapPassword=admin \
--set ingress.tls.source=secret \
--set privateCA=true
坑点
- 集群导入异常,使用导入时的yaml删除资源(kubectl delete -f),cattle-system名称空间被干掉,rancher整个没了。
解决办法:修改yaml后再删,小心点。 - 导入现有集群时一直处于pending,cattle-cluster-agent一直cattle-cluster-agent一直CrashLoopBackOff,查看日志发现无法访问rancher域名。
解决办法:在agent所属deploy里加如下:
hostAliases:
1. ip: 192.168.1.99
hostnames:
2. "rancher.test.cn"
可以去k8s官网搜索该字段,确定具体加在哪里。
3. 加入后集群变成waiting状态
现象:
Waiting for API to be available
[Disconnected] Cluster agent is not connected
查看rancher日志,也显示无法解析rancher域名
解决办法:同样修改rancher deploy ,加入hostAliases,应用修改,再重建cattle-cluster-agent,集群终于成功导入!!