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

Fox*_*010 9 ubuntu port networking kubernetes ufw

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

sudo ufw allow 6443sudo 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
Run Code Online (Sandbox Code Playgroud)

...当使用私有 IP 时,其他计算机通过以下方式连接到它:

telnet 192.168.50.55 6443
Trying 192.168.50.55...
telnet: Unable to connect to remote host: Connection refused
Run Code Online (Sandbox Code Playgroud)

如果我告诉 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.
Run Code Online (Sandbox Code Playgroud)

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

感谢您的帮助,

福克斯勒2010

Sai*_*nti 10

  • 那是因为没有进程在侦听 6443。您可以使用以下命令验证它ss -nltp | grep 6443

  • 第 6443 章 kubeadm init --apiserver-advertise-address=192.168.50.55 --pod-network-cidr=<pod cidr>

  • 由于您尚未初始化集群,kube-apiserver 将不会运行,因此出现错误“连接被拒绝”。

  • 如果您想验证防火墙/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.
Run Code Online (Sandbox Code Playgroud)