设置 kubernetes 时端口 6443 连接被拒绝

Port 6443 connection refused when setting up kubernetes

我正在阅读有关使用 kubeadm 设置 Kubernetes 集群的文档。我在三台虚拟机上 运行ning Ubuntu Server 20.04,但目前只使用其中一台,然后再对另外两台进行配置。我已经准备好 containerd 和禁用交换,但在启用所需端口时遇到了困难。我首先使用 OpenSSH 应用程序配置文件将 ufw 配置为仅允许来自端口 22 的传入流量。在阅读了启用所需端口后,我有 运行 命令:

sudo ufw allow 6443, sudo ufw allow 6443/tcp, 和 sudo ufw allow 6443/udp.

当我尝试使用 telnet 连接时,它失败了:

telnet 127.0.0.1 6443
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

...当使用私有 IP 时,其他计算机连接到它:

telnet 192.168.50.55 6443
Trying 192.168.50.55...
telnet: Unable to connect to remote host: Connection refused

如果我告诉 telnet 使用端口 22,它工作正常:

telnet 127.0.0.1 22
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.3
^]
telnet> close
Connection closed.

我的防火墙配置有问题吗?还是另外一回事?

感谢您的帮助,

foxler2010

连接被拒绝通常意味着请求到达服务器但指定端口上没有服务运行。您确定 api-server 在您的节点上启动了吗?

你应该检查 kubernetes 是否有 运行 吗?
尝试命令:

kubectl cluster-info

输出如下所示:

如果没有,就得用命令初始化kubernetes的master节点:

kubeadm init --apiserver-advertise-address=192.168.50.55 --pod-network-cidr=10.123.0.0/16

192.168.50.55:主节点IP
10.123.0.0/16:IP kubernetes 网络插件范围

I did not do anything with kubeadm, I have only installed containerd so far.

你有 运行 kubeadm 来设置 k8s 之后进行 6443 测试。如果你现在这样做,你将不会得到任何回应。

  • 那是因为没有进程监听 6443.you 可以使用 ss -nltp | grep 6443

    验证它
  • 6443 将由使用 kubeadm init --apiserver-advertise-address=192.168.50.55 --pod-network-cidr=<pod cidr>

    初始化集群后创建的“kube-apiserver”监听
  • 因为你还没有初始化集群,kube-apiserver 不会 运行 因此错误“连接被拒绝”。

  • 如果您想验证您的 firewall/ufw 设置是否正确完成以接受端口 6443 上的流量(无需安装 kubernetes 集群),那么您可以尝试以下操作:

1. Install nmap " sudo apt-get install nmap "

2. listen to port 6443 "nc -l 6443"

3. open a another terminal/window and connect to 6443 port "nc -zv 192.168.50.55 6443" . It should say connected.