k3s: 连接到服务器 localhost:8080 被拒绝 – 是否指定了正确的主机或端口?

111次阅读
没有评论

问题描述

当运行任何 kubectl 命令时,出现以下错误信息:

The connection to the server localhost:8080 was refused - did you specify the right host or port?

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

这个问题很可能是由于错误的 ~/.kube/config 文件引起的,可能是因为你使用了不同的 Kubernetes 安装(如 minikube)或旧版本的 k3s。如果服务器是本地的,你可以通过运行以下命令来解决这个问题:

mkdir ~/.kube
sudo k3s kubectl config view --raw | tee ~/.kube/config
chmod 600 ~/.kube/config

上述命令将创建一个 ~/.kube 目录,并使用 k3s kubectl 命令生成一个新的 ~/.kube/config 文件。然后,将权限设置为只有当前用户可读写。
请确保 ~/.kube/config 文件的内容与服务器启动时的 /etc/rancher/k3s/k3s.yaml 文件相同(包括密钥、IP 和端口)。

注意:为了让 k3s 使用这个配置文件,你需要配置 KUBECONFIG 环境变量。

export KUBECONFIG=~/.kube/config

你可以将上述命令添加到 ~/.profile~/.bashrc 文件中,以便每次登录时都会自动设置 KUBECONFIG 环境变量。

方案2

如果你使用的是 k3s 的旧版本,可能需要更新 k3s 或重新安装 k3s 来解决这个问题。请参考 k3s 的官方文档或社区支持资源,了解如何更新或重新安装 k3s。

方案3

如果以上解决方案都无法解决问题,可能是由于其他原因导致的连接问题。你可以尝试以下步骤来进一步排查问题:
1. 检查服务器是否正在运行,并且监听在正确的主机和端口上。你可以使用 netstat 命令或其他网络工具来检查。
2. 检查防火墙设置,确保允许从本地主机连接到指定的主机和端口。
3. 检查网络连接是否正常,尝试使用其他网络工具(如 ping)测试连接。
4. 检查 k3s 的日志文件,查看是否有任何错误或警告信息。

如果问题仍然存在,请参考 k3s 的官方文档或社区支持资源,寻求进一步的帮助和支持。

正文完