跳到主要内容

使用config连接k8s集群遇到的问题

使用 kubeadm 安装完k8s后,会在 /etc/kubernetes/ 下生成配置文件 admin.conf ,然后我们会把这个文件拷贝到 $HOME/.kube 下并命名为 config,通过这个文件我们可以操作k8s集群

config 文件放到 $HOME/.kube 后,执行 kubectl cluster-info 查看集群信息报错如下,其中 192.168.31.1 是我本地网络的路由器ip段

$ kubectl cluster-info     

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
Unable to connect to the server: dial tcp: lookup lb.kubesphere.local on 192.168.31.1:53: no such host

然后根据提示执行命令 kubectl cluster-info dump ,报错如下

$ kubectl cluster-info dump
Unable to connect to the server: dial tcp: lookup lb.kubesphere.local on 192.168.31.1:53: no such host

由于 config 文件是从虚拟机中拷贝下来的,所以直接登录到 master 节点执行命令 kubectl cluster-info 查看

$ kubectl cluster-info 
Kubernetes control plane is running at https://lb.kubesphere.local:6443
coredns is running at https://lb.kubesphere.local:6443/api/v1/namespaces/kube-system/services/coredns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

可以看到 apiserver 地址为 lb.kubesphere.local:6443 ,这是因为是使用 kubekey 安装的k8s,然后 kubekey 自动把 apiserver 地址设置成了域名,而当把 config 文件下载到电脑本机使用的时候,本机电脑是无法解析 lb.kubesphere.local 这个域名的,因此需要把这个域名在本机做一下hosts解析,解析成虚拟机中 apiserver 服务器的ip地址就可以了