You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EC2实例配置Kubernetes主从节点Slave加入报错求助

解决Slave节点无法加入Kubernetes集群的问题

关于kubectl get pods的错误说明

执行kubectl get pods出现The connection to the server localhost:8080 was refused属于正常现象——Slave节点尚未成功加入集群,本地未配置有效的kubeconfig文件,无需提前处理,待节点加入集群后再配置即可。

重点排查join超时问题

net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)错误的核心原因是Slave节点无法访问Master节点的API Server端口(6443),或Master节点API Server未正常运行,按以下步骤逐一排查:

1. 检查AWS EC2安全组配置

  • 确保Master节点的安全组允许Slave节点的私有IP/网段访问6443端口(TCP协议)
  • 确认Slave节点的安全组允许出站访问Master节点的6443端口
  • 若使用AWS默认VPC,需保证主从节点在同一安全组,或安全组规则互信

2. 验证Master节点API Server状态

在Master节点执行以下命令,确认API Server正常运行:

# 查看kube-apiserver pod状态
kubectl get pods -n kube-system | grep kube-apiserver
# 检查6443端口监听情况
ss -tulpn | grep 6443

若kube-apiserver未运行,查看kubelet日志排查问题:

journalctl -u kubelet -f

必要时重新执行kubeadm init初始化Master节点。

3. 测试主从节点网络连通性

在Slave节点执行以下命令,验证网络可达性:

# 测试Master节点私有IP连通性
ping 172.31.25.122
# 测试6443端口连通性
telnet 172.31.25.122 6443
# 或用curl验证
curl -v https://172.31.25.122:6443

若网络不通,检查EC2实例子网配置、路由表是否正常。

4. 修复Slave节点cgroup警告

虽然missing optional cgroups: blkio是警告,但修复可避免潜在问题:

# 启用blkio cgroup
echo "GRUB_CMDLINE_LINUX_DEFAULT=\"cgroup_enable=memory swapaccount=1 cgroup_enable=blkio\"" >> /etc/default/grub
update-grub
reboot

5. 重新执行join命令

完成以上排查修复后,重新执行Master生成的join命令:

kubeadm join 172.31.25.122:6443 --token ioewww.jrqwngf1t6ji94yp \
        --discovery-token-ca-cert-hash sha256:de6116a51a8cae8b128f311d08ba47b2c381bd97403aae8da2a062cf89c83cb3

6. 配置Slave节点kubeconfig

节点成功加入后,配置本地kubeconfig:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/kubelet.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

此时执行kubectl get pods即可正常连接集群。

内容的提问来源于stack exchange,提问作者Teja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 14:57:22