【发布时间】:2021-05-19 16:23:03
【问题描述】:
我在 AWS ec2 (Centos 8 ami) 中有 3 个节点集群。
当我尝试从主节点访问调度在工作节点上的 pod 时:
kubectl exec -it kube-flannel-ds-amd64-lfzpd -n kube-system /bin/bash
Error from server: error dialing backend: dial tcp 10.41.12.53:10250: i/o timeout
kubectl get pods --all-namespaces -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system coredns-54ff9cd656-8mpbx 1/1 Running 2 7d21h 10.244.0.7 master <none> <none>
kube-system coredns-54ff9cd656-xcxvs 1/1 Running 2 7d21h 10.244.0.6 master <none> <none>
kube-system etcd-master 1/1 Running 2 7d21h 10.41.14.198 master <none> <none>
kube-system kube-apiserver-master 1/1 Running 2 7d21h 10.41.14.198 master <none> <none>
kube-system kube-controller-manager-master 1/1 Running 2 7d21h 10.41.14.198 master <none> <none>
kube-system kube-flannel-ds-amd64-8zgpw 1/1 Running 2 7d21h 10.41.14.198 master <none> <none>
kube-system kube-flannel-ds-amd64-lfzpd 1/1 Running 2 7d21h 10.41.12.53 worker1 <none> <none>
kube-system kube-flannel-ds-amd64-nhw5j 1/1 Running 2 7d21h 10.41.15.9 worker3 <none> <none>
kube-system kube-flannel-ds-amd64-s6nms 1/1 Running 2 7d21h 10.41.15.188 worker2 <none> <none>
kube-system kube-proxy-47s8k 1/1 Running 2 7d21h 10.41.15.9 worker3 <none> <none>
kube-system kube-proxy-6lbvq 1/1 Running 2 7d21h 10.41.15.188 worker2 <none> <none>
kube-system kube-proxy-vhmfp 1/1 Running 2 7d21h 10.41.14.198 master <none> <none>
kube-system kube-proxy-xwsnk 1/1 Running 2 7d21h 10.41.12.53 worker1 <none> <none>
kube-system kube-scheduler-master 1/1 Running 2 7d21h 10.41.14.198 master <none> <none>
kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready master 7d21h v1.13.10
worker1 Ready <none> 7d21h v1.13.10
worker2 Ready <none> 7d21h v1.13.10
worker3 Ready <none> 7d21h v1.13.10
我在所有节点中尝试了以下步骤,但到目前为止没有运气:
-
iptables -w -P FORWARD ACCEPT在所有节点上 - 开启伪装
- 开启端口 10250/tcp
- 开启8472/udp端口
- 启动 kubelet
任何指针都会有所帮助。
【问题讨论】:
-
如果您使用的是centOS(我假设您这样做,因为它在标签中)可能是nftables后端centOS使用的问题。你用的是哪个版本的centOS?
-
CentOS_8(ami) @PawełGrondal
-
你的问题很可能是因为centOS使用了NFT后端。您可能需要将 CNI 更改为支持它的 CNI,例如 Calico
-
@PawełGrondal 你的意思是法兰绒在这种情况下不起作用?或者有什么方法可以禁用 nft 并回退到 iptables ...?任何解决方法都可以。
-
是的,我相信 flannel 不会工作,不幸的是你不能在 centOS 8 上回退到 iptables。你应该切换到 Calico 并使用
FELIX_IPTABLESBACKEND: NFT环境变量配置它。
标签: kubernetes amazon-ec2 centos