rancher安装
1、添加helm chart仓库
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
自己选择合适的rancher版本 这里我选择了适合生产环境的 stable版本
2、创建rancher的ns
kubectl create namespace cattle-system
3、下载acme.sh文件,为后续添加正式证书做准备
curl https://get.acme.sh | sh -s [email protected]
4、访问freeSSL为自己的域名添加证书,根据提示在服务器配置证书,建议配置统配域名证书
acme.sh --issue -d *.example.com --dns dns_dp --server https://acme.freessl.cn/v2/DV90/directory/***
5、将fullchain.cer文件重命名为tls.crt,将证书秘钥文件重命名为tls.key,等待后续使用
6、安装rancher
helm install rancher rancher-stable/rancher \
--namespace cattle-system \
--set hostname=rancher.example.com \
--set replicas=1 \
--set ingress.tls.source=secret
7、安装证书
kubectl -n cattle-system create secret tls tls-rancher-ingress \
--cert=tls.crt \
--key=tls.key
8、验证是否成功部署
kubectl -n cattle-system rollout status deploy/rancher
9、浏览器输入:https:/rancher.exmaple.com/ 根据提示进行后续的操作即可
10、千万别忘记备案,不然域名将无法访问
rancher连接k8s(以k3s为例)
首页->集群管理->导入已有集群->通用->填写集群名称→创建->根据实际情况输入以下命令即可
不过可能会遇到各种奇怪情况,导致rancher上显示集群状态一直是pending
(1)不能交互错误
给master节点对应ip配置白名单后,发现能进行交互了。
输入命令:kubectl get pods -n cattle-system
发现拉取失败
(2)拉取错误
查看详细问题:kubectl describe pods -n cattle-system cattle-cluster-agent-89cd79cb-nc2kt
此处有两个错误:
1、harbor.inchtek.tech解析为了内网ip,需要手动修改host
2、配置后出现了无线重启问题,原因是worker节点也需要pull rancher-agent,所以worker节点也需要白名单
给master、worker节点都配置白名单并且配置host后出现了无限重启问题
(3)重启错误
经过多方查阅资料发现:
cattle-cluster-agent 运行在 pod 上,与rancher-server端是走内网进行交互,即使在 node 节点上本地 hosts 加入本地解析也不行。因为 pod 是走
CoreDNS 的解析
参考资料
rancher修复cattle-cluster-agent无法连接rancher-server | 慎道
根据上述资料输入该命令:kubectl edit deployment/cattle-cluster-agent -o yaml --save-config -n cattle-system
如图所示添加hostAliases
:wq 搞定
如果出现单master部署可能出现
1 node(s) had untolerated taint {node-role.kubernetes.io/control-plane: }这类错误
需要手动删除污点
查看污点: kubectl describe node nodename |grep Taints
删除污点:taint nodes --all node-role.kubernetes.io/control-plane:NoSchedule-