如果您是通过 Kubespray 在自己的服务器上部署 Kubernetes 集群,则可能需要检查您的 Kubespray 部署配置是否正确设置了 API Server 的地址。默认情况下,Kubespray 将 Kubernetes API Server 暴露在 localhost 上,因此 kubectl cluster-info 命令将显示 localhost。
要解决这个问题,您可以尝试以下步骤:
- 确认您的 Kubespray 部署配置文件中的
kube_service_addresses和kube_pods_subnet选项是否正确设置。例如:
kube_service_addresses: 10.233.0.0/18
kube_pods_subnet: 10.233.64.0/18
确认您的 Kubernetes API Server 是否已绑定到正确的 IP 地址。您可以通过 SSH 登录到 Kubernetes 控制节点,并检查
/etc/kubernetes/manifests/kube-apiserver.yaml文件中的--advertise-address选项是否设置为该节点的公共 IP 地址。如果上述步骤都没有解决问题,请考虑使用
kubectl proxy命令来建立与 Kubernetes API Server 的代理连接。运行以下命令:
kubectl proxy --address='0.0.0.0' --port=8001 --accept-hosts='^*$'
这将在本地计算机上启动一个 HTTP 代理服务器,允许您通过端口号 8001 访问 Kubernetes API Server。然后,您可以使用以下命令来查看 Kubernetes 集群信息:
kubectl cluster-info --kubeconfig=<path_to_kubeconfig_file>
其中 <path_to_kubeconfig_file> 是您的 kubeconfig 文件的路径。




