Rancher2.6.4创建的自定义集群无法显示集群信息。

Rancher Server 设置

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

下游集群信息

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

用户信息

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

问题描述:
用Rancher创建自定义集群,集群管理界面的【Explorer】一直是灰色的,无法查看集群。
通过查看pod日志,发现是无法解析rancher的域名。无法解析域名这个问题,以前版本的Rancher也一直存在,但是以前版本的是可以看到集群UI界面的,也就是在UI界面上找到cattle-cluster-agent ,并追加主机映射。现在这个版本不行了,需要用命令行去处理。
重现步骤:

结果:

预期结果:
1.
1.能不能彻底解决这个问题,或者加载/etc/hosts的域名映射
2.即使cattle-cluster-agent解析不了域名,也应该展示集群信息
截图:

其他上下文信息:

日志

kubectl get pod --all-namespaces

NAMESPACE NAME READY STATUS RESTARTS AGE
cattle-system cattle-cluster-agent-5ff679f559-gvkf7 0/1 CrashLoopBackOff 105 (4m29s ago) 8h

kubectl -n cattle-system logs -f cattle-cluster-agent-5ff679f559-gvkf7

INFO: Environment: CATTLE_ADDRESS=10.42.0.2 CATTLE_CA_CHECKSUM=a8b9561a20bd1f22afc6bf00c991ea91634338aa5c328113ff11e841f2f36fc7 CATTLE_CLUSTER=true CATTLE_CLUSTER_AGENT_PORT=tcp://10.43.222.202:80 CATTLE_CLUSTER_AGENT_PORT_443_TCP=tcp://10.43.222.202:443 CATTLE_CLUSTER_AGENT_PORT_443_TCP_ADDR=10.43.222.202 CATTLE_CLUSTER_AGENT_PORT_443_TCP_PORT=443 CATTLE_CLUSTER_AGENT_PORT_443_TCP_PROTO=tcp CATTLE_CLUSTER_AGENT_PORT_80_TCP=tcp://10.43.222.202:80 CATTLE_CLUSTER_AGENT_PORT_80_TCP_ADDR=10.43.222.202 CATTLE_CLUSTER_AGENT_PORT_80_TCP_PORT=80 CATTLE_CLUSTER_AGENT_PORT_80_TCP_PROTO=tcp CATTLE_CLUSTER_AGENT_SERVICE_HOST=10.43.222.202 CATTLE_CLUSTER_AGENT_SERVICE_PORT=80 CATTLE_CLUSTER_AGENT_SERVICE_PORT_HTTP=80 CATTLE_CLUSTER_AGENT_SERVICE_PORT_HTTPS_INTERNAL=443 CATTLE_CLUSTER_REGISTRY=registry.dxc1s.com CATTLE_FEATURES=embedded-cluster-api=false,fleet=false,monitoringv1=false,multi-cluster-management=false,multi-cluster-management-agent=true,provisioningv2=false,rke2=false CATTLE_INGRESS_IP_DOMAIN=sslip.io CATTLE_INSTALL_UUID=da501993-522b-4a10-9fbf-6866d39b9fb5 CATTLE_INTERNAL_ADDRESS= CATTLE_IS_RKE=true CATTLE_K8S_MANAGED=true CATTLE_NODE_NAME=cattle-cluster-agent-5ff679f559-gvkf7 CATTLE_SERVER=https://rancher.dxc1s.com CATTLE_SERVER_VERSION=v2.6.4
INFO: Using resolv.conf: nameserver 10.43.0.10 search cattle-system.svc.cluster.local svc.cluster.local cluster.local options ndots:5
ERROR: https://rancher.dxc1s.com/ping is not accessible (Could not resolve host: rancher.dxc1s.com)

kubectl -n cattle-system get deploy

NAME READY UP-TO-DATE AVAILABLE AGE
cattle-cluster-agent 0/1 1 0 8h

kubectl -n cattle-system edit deploy cattle-cluster-agent

  hostAliases:
  - ip: 192.168.2.78
    hostnames:
    - "rancher.dxc1s.com"

可以参考:安装 | Rancher文档

如果因为无法访问下游集群导致无法下载 kubeconfig 的话,可使用下面的命令在控制节点执行,生成 kubeconfig 文件:

docker run --rm --net=host -v $(docker inspect kubelet --format '{{ range .Mounts }}{{ if eq .Destination "/etc/kubernetes" }}{{ .Source }}{{ end }}{{ end }}')/ssl:/etc/kubernetes/ssl:ro --entrypoint bash $(docker inspect $(docker images -q --filter=label=io.cattle.agent=true) --format='{{index .RepoTags 0}}' | tail -1) -c 'kubectl --kubeconfig /etc/kubernetes/ssl/kubecfg-kube-node.yaml get configmap -n kube-system full-cluster-state -o json | jq -r .data.\"full-cluster-state\" | jq -r .currentState.certificatesBundle.\"kube-admin\".config | sed -e "/^[[:space:]]*server:/ s_:.*_: \"https://127.0.0.1:6443\"_"' > kubeconfig_admin.yaml