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

Vagrant部署K8s主节点时Flannel安装遇6443端口连接拒绝问题

Vagrant部署Debian 11 Kubernetes集群时Flannel安装遇6443端口连接拒绝问题排查

问题概述

在Vagrant部署的Debian 11虚拟机集群中安装Flannel Pod网络时,持续出现6443端口连接拒绝错误,尝试Stack Overflow上多数解决方案后仍未解决,kmaster节点始终处于NotReady状态。

环境配置细节

  • kmaster虚拟机的/etc/hosts内容:
127.0.0.1   localhost
127.0.0.2   bullseye
::1     localhost ip6-localhost ip6-loopback
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters

127.0.1.1 kmaster kmaster
192.168.56.10   kmaster
  • $IP变量通过hostname -I | awk '{print $2}'获取,值为192.168.56.10;使用自定义TOKEN,主机名为kmaster
  • kubeadm初始化命令:
kubeadm init --apiserver-advertise-address=$IP --token="$TOKEN" --pod-network-cidr=10.244.0.0/16
  • 生成的/etc/kubernetes/admin.conf内容:
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data:  [...]
    server: https://192.168.56.10:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: [...]
    client-key-data:  [...]

执行步骤

kubeadm初始化后,执行以下操作:

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

mkdir -p /home/vagrant/.kube
cp /etc/kubernetes/admin.conf /home/vagrant/.kube/config
sudo chown vagrant:vagrant /home/vagrant/.kube/config

# 生成的配置文件权限:
# -rw------- 1 root root 5641 Jul 16 04:35 /root/.kube/config
# -rw------- 1 vagrant vagrant 5641 Jul 16 04:35 /home/vagrant/.kube/config

export KUBECONFIG=/home/vagrant/.kube/config

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

systemctl enable kubelet
service kubelet restart

错误信息

执行kubectl apply时反复出现:

kmaster: unable to recognize "https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml": Get "https://192.168.56.10:6443/api?timeout=32s": dial tcp 192.168.56.10:6443: connect: connection refused

切换KUBECONFIG指向/root/.kube/config问题依旧。

执行kubectl get nodes结果:

vagrant@kmaster:~$ kubectl get nodes

NAME      STATUS     ROLES           AGE   VERSION
kmaster   NotReady   control-plane   81s   v1.24.3

排查建议

  • 检查API Server状态

    • 查看API Server日志:journalctl -u kube-apiserver -f,排查启动失败原因(如证书错误、etcd连接失败、端口冲突)
    • 确认6443端口监听状态:netstat -tulpn | grep 6443,确保端口被kube-apiserver占用
  • 修复/etc/hosts冲突

    • /etc/hosts中同时存在127.0.1.1 kmaster和192.168.56.10 kmaster,可能导致API Server绑定到本地回环地址而非指定的集群IP
    • 注释掉127.0.1.1 kmaster一行,然后重启kube-apiserver和kubelet
  • 验证kubeadm初始化参数

    • 确认--apiserver-advertise-address指定的IP为集群通信可用IP,可手动指定而非依赖变量:kubeadm init --apiserver-advertise-address=192.168.56.10 --token="$TOKEN" --pod-network-cidr=10.244.0.0/16
  • 检查kubelet运行状态

    • 查看kubelet状态:systemctl status kubelet
    • 查看kubelet日志:journalctl -u kubelet -f,排查是否存在无法连接API Server或启动组件失败的信息
  • 检查网络与防火墙

    • 验证192.168.56.10在本机可ping通
    • 检查Debian防火墙规则:ufw status,若6443端口被禁止,执行ufw allow 6443/tcp开放端口
  • 确认版本兼容性

    • 当前Kubernetes版本为v1.24.3,需确保使用的Flannel配置与该版本兼容,建议使用适配v1.24的Flannel部署文件

内容的提问来源于stack exchange,提问作者Marc Le Bihan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:00:59