导入已有k8s集群问题

环境信息:
RKE2 版本:
1.23.17

节点 CPU 架构,操作系统和版本:
rancher所在k8s集群为3master节点,单节点2核4g,centos7
需要注册的已有k8s集群为6节点,3master+3worker,单节点2核4g,centos7

问题描述:
rancher UI界面复制curl开头的命令到已有k8s集群master1节点运行,运行后,创建的pod:cattle-cluster-agent 一直重启处于crashloopBackOff状态,日志报错为:
Certificate information is displayed alove. error: Get "https://10.32.165.238:31139”:x509: certificate signed ky unknown anthority

你提供的信息不完整,只能根据这些信息去推测。

日志显示连接的 rancher server 地址是 https://10.32.165.238:31139,正常来说,如果 helm 安装的 rancher 需要通过域名访问,而你是通过 IP+端口访问,猜测是将 rancher svc 通过 nodeport 映射出来提供下游集群节点去注册。

这种方法是不行的,因为通过 helm 安装 rancher,访问 rancher 时需要 tls 证书,这个 tls 证书是放在 ingress 中的,按照你的方式通过 nodeport 将 rancher 访问地址开放出来,就跳过了 tls 证书的校验,虽然在浏览器可以访问,但注册节点的时候就会出现上述问题。

还是通过域名去访问,并且注册下游集群吧。

我组长在另一个节点配置了三个rancher节点的负载均衡如下:


如果不把svc改为NodePort,我是通过这个负载均衡访问rancherUI界面吗,从这能看出我用哪个域名来访问吗?

看不出来

我的rancher是执行以下两个命令来运行的,我觉得你说的域名应该是,命令里边的 hostname,但是这个域名我访问不了。


官网解释说这个hostname是负载均衡对应的dns,这里我不太理解,老师您理解这个吗?是我们配的nginx负载均衡不对吗?

还有个命令是:kubectl -n cattle-system apply -R -f ./rancher

这个 hostname 就是定义通过哪个域名来访问 rancher ,你需要将这个域名映射到 ingress controller 对应主机的 IP。

这里也有一些 高可用安装的参考:Rancher 高可用安装--自签名证书+4层 LB

我的环境是内网,是离线安装的,且hosts文件我这没权限修改windows的,这种情况下,老师有什么建议吗?

那就搭个内网的 dns server,这个就得靠自己想办法了