新建rancher server导入原rancher 集群提示Unable to connect to the server: x509

问题描述:
原rancher server 服务器无法使用、新建了一个rancher server。现在想导入原rancher 集群的节点。
使用rancher server的导入集群命令、提示

截图:

证书的问题,你的 rancher server 是证书是用的哪种?

没配置证书、默认的。
你是指,之前的那个集群吗

你这个问题是因为你无法通过 kubectl 连接到下游集群,你可能本地已经保存了之前从 Rancher Server 上下载的 kubeconfig 文件,但那个 kubeconfig 文件是连接的 Rancher API,所以你现在无法通过 kubectl 访问下游集群。

有两个方法可以解决:

  1. 在你原有的 kubeconfig 切换 context,直接连接下游集群的 kube-apiserver:
    参考:Rancher Docs: Access a Cluster with Kubectl and kubeconfig

  2. 在下游集群的 controlplane 节点上执行以下命令,来恢复连接下游集群的 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

谢谢回答,实际是用的第二种方案,
1、获取到旧的config文件,然后放到/root/.kube/config里面,这个时候就可以kubectl get node了。
2、然后再到rancher-server里面,新建一个导入集群,执行导入命令,等会旧的服务就进来了。