Rancher ui无法访问

Rancher Server 设置

  • Rancher 版本:latest
  • 安装选项 (Docker install/Helm Chart): k3s helm
    • 如果是 Helm Chart 安装,需要提供 Local 集群的类型(RKE1, RKE2, k3s, EKS, 等)和版本:
  • 在线或离线部署:在线安装

下游集群信息

  • Kubernetes 版本: v1.24.6+k3s1
  • Cluster Type (Local/Downstream): Local
    • 如果 Downstream,是什么类型的集群?(自定义/导入或为托管 等):

用户信息

  • 登录用户的角色是什么? (管理员/集群所有者/集群成员/项目所有者/项目成员/自定义):管理员
    • 如果自定义,自定义权限集:

主机操作系统:
centos 7(3台)/ubuntu 18.04(1台)

问题描述:
1. 使用四台独立的云服务器(均有公网IP)建立k3s+mysql HA集群

[root@VM-0-8-centos rancher]# kubectl get pods -n kube-system -o wide
NAMESPACE                   NAME                                                READY   STATUS      RESTARTS        AGE     IP           NODE             NOMINATED NODE   READINESS GATES
kube-system                 helm-install-traefik-crd-9f9nx                      0/1     Completed   19              7h17m   10.42.2.8    vm-0-17-ubuntu   <none>           <none>
kube-system                 helm-install-traefik-95jwf                          0/1     Completed   21              7h17m   10.42.2.9    vm-0-17-ubuntu   <none>           <none>
kube-system                 coredns-75fc8f8fff-rvrth                            1/1     Running     0               7h17m   10.42.1.2    vm-0-3-centos    <none>           <none>
kube-system                 metrics-server-668d979685-wrn9c                     1/1     Running     0               7h17m   10.42.1.3    vm-0-3-centos    <none>           <none>
kube-system                 local-path-provisioner-5b5579c644-2vsgg             1/1     Running     7 (7h11m ago)   7h17m   10.42.2.7    vm-0-17-ubuntu   <none>           <none>
kube-system                 traefik-7cd4fcff68-sn5v4                            1/1     Running     0               6h22m   10.42.3.8    vm-0-14-centos   <none>           <none>

2. helm install 安装rancher

创建secret

kubectl -n cattle-system create secret tls tls-rancher-ingress \
  --cert=tls.crt \
  --key=tls.key

安装脚本

helm install rancher rancher-stable/rancher \
  --namespace cattle-system \
  --set hostname=rancher.example.com \
  --set bootstrapPassword=xxx \
  --set ingress.tls.source=secret
[root@VM-0-8-centos rancher]# kubectl get pods -n cattle-system -o wide
NAME                               READY   STATUS    RESTARTS   AGE    IP           NODE             NOMINATED NODE   READINESS GATES
rancher-webhook-577b778f8f-j9btz   1/1     Running   0          6h9m   10.42.2.17   vm-0-17-ubuntu   <none>           <none>
rancher-5f74dfc459-m26lk           1/1     Running   0          96m    10.42.3.13   vm-0-14-centos   <none>           <none>
rancher-5f74dfc459-j4dgr           1/1     Running   0          97m    10.42.1.4    vm-0-3-centos    <none>           <none>
rancher-5f74dfc459-sschv           1/1     Running   0          97m    10.42.0.25   vm-0-8-centos    <none>           <none>
  1. 负载均衡启动正常(ADDRESS隐藏)
[root@VM-0-8-centos rancher]# kubectl get ingress -A -o wide
NAMESPACE       NAME      CLASS     HOSTS                 ADDRESS                                      PORTS     AGE
cattle-system   rancher   traefik   rancher.example.com   xx.xx.xx.xx   80, 443   6h23m

但是通过rancher.example.com却不能访问rancher ui
rancher.example.com DNS解析配置确认OK(之前在该云服务器上单节点k3s配置成功可以正常使用)

重现步骤:
如上
结果:
rancher ui无法访问
预期结果:
rancher ui访问正常
截图:

其他上下文信息:

日志


请问该问题应该如何排查???麻烦各位大神指教一下,非常感谢!

无法访问的现象是什么?是 404?该页无法显示?还是啥。

另外,你使用的证书是自签名的么?还是从某个证书颁发机构去下载的。

如果是我,我会按照如下步骤进行排查:

  1. 查看 rancher 的日志,确认 rancher pod 是否正常启动
kubectl -n cattle-system logs -f -l app=rancher
  1. 查看 nginx(LB)的日志
  2. ping 这个域名,看看解析的 ip 是否为 LB 的 IP

另外,这篇文章介绍了如何使用自签名证书安装高可用的 Rancher,参考:Rancher 高可用安装--自签名证书+4层 LB

1.无法访问的现象是什么?
— 无法访问此网站,好像没有找到这个服务一样
2.你使用的证书是自签名的么?
—不是自签名证书,机构颁发,ping这个域名可以获取到云服务器的IP
3.rancher启动正常

[root@VM-0-8-centos ~]# kubectl -n cattle-system rollout status deploy/rancher
deployment "rancher" successfully rolled out
[root@VM-0-8-centos ~]# kubectl -n cattle-system get deploy rancher
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
rancher   3/3     3            3           18h
[root@VM-0-8-centos ~]# kubectl -n cattle-system get pods -l app=rancher
NAME                       READY   STATUS    RESTARTS   AGE
rancher-5f74dfc459-m26lk   1/1     Running   0          13h
rancher-5f74dfc459-j4dgr   1/1     Running   0          13h
rancher-5f74dfc459-sschv   1/1     Running   0          13h

4.k3s默认使用traefik负载均衡,没有配置nginx负责均衡。我个人理解应该是使用云服务器IP 443端口即可访问rancher ui
5.rancher启动log

[root@VM-0-8-centos ~]# kubectl -n cattle-system logs -f -l app=rancher
2023/02/28 00:33:14 [INFO] kontainerdriver googlekubernetesengine stopped
2023/02/28 00:33:14 [INFO] dynamic schema for kontainerdriver googlekubernetesengine updating
2023/02/28 01:19:50 [ERROR] error parsing azure-group-cache-size, skipping update strconv.Atoi: parsing "": invalid syntax
2023/02/28 01:19:50 [INFO] Refreshing driverMetadata in 1440 minutes
2023/02/28 01:19:50 [INFO] getReleaseConfig: reloading config for k3s
2023/02/28 01:19:50 [INFO] getReleaseConfig: reloading config for rke2
2023/02/28 01:19:51 [INFO] driverMetadata: refreshing data from upstream https://releases.rancher.com/kontainer-driver-metadata/release-v2.7/data.json
2023/02/28 01:19:51 [INFO] Retrieve data.json from local path /var/lib/rancher-data/driver-metadata/data.json
2023/02/28 01:19:52 [INFO] Loaded configuration from https://releases.rancher.com/kontainer-driver-metadata/release-v2.7/data.json in [0x6d10098]
2023/02/28 01:19:52 [INFO] Loaded configuration from https://releases.rancher.com/kontainer-driver-metadata/release-v2.7/data.json in [0x6d10098]
W0228 02:14:37.257057      33 warnings.go:80] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+
W0228 02:24:36.286749      33 warnings.go:80] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+

没有报错的日志,启动应该是没问题。
6.云服务器的端口443、80都开放了

rancher小白,怀疑跟LB有关,但也不知道怎么确认,这块儿也没太搞清楚

找到访问入口了
traefix可以提供负载均衡不假,但是是依托于Nodeport

[root@VM-0-8-centos ~]# kubectl get services -n kube-system
NAME             TYPE           CLUSTER-IP      EXTERNAL-IP                                  PORT(S)                      AGE
kube-dns         ClusterIP      10.43.0.10      <none>                                       53/UDP,53/TCP,9153/TCP       21h
metrics-server   ClusterIP      10.43.234.121   <none>                                       443/TCP                      21h
traefik          LoadBalancer   10.43.38.44     121.4.155.196,43.132.118.218,82.157.25.172   80:31013/TCP,443:31361/TCP   21h

也就是实际的rancher访问入口应该是
https://rancher.example.com:31361

还是对traefik的工作原理不清晰,后续还要加强这方面知识的补充
非常感谢ksd的回复!!!

192.168.177.131-》角色:全部
192.168.177.132-》角色:全部
192.168.177.133-》角色:全部

为什么访问rancher只能通过192.168.177.131进行UI访问?如果192.168.177.131宕机,不就没没办法访问UI了吗?
我的问题是:master怎么高可用?

rancher 1.6 已经早已不维护了,推荐使用 rancher 2.x