我是法兰绒和K8的新手。我在我的1个主节点和2个节点群集(从KVM创建)上玩耍。

我使用法兰绒网络插件初始化了群集。然后我发现我无法到达内部。
原来,我的网络或DNS进程可能出了点问题。

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/之后,我将 8285和8472 添加到Firewalld

[root@k8smaster ~]# firewall-cmd --list-port
6443/tcp 80/tcp 8285/udp 8472/udp 8472/tcp 8285/tcp

我得到了
[root@k8smaster ~]# kubectl exec -ti dnsutils -- nslookup kubernetes.default
;; connection timed out; no servers could be reached

command terminated with exit code 1

但是,如果我停止firewalld,一切都很好。
[root@k8smaster ~]# kubectl exec -ti dnsutils -- nslookup kubernetes.default
Server:     10.96.0.10
Address:    10.96.0.10#53

Name:   kubernetes.default.svc.cluster.local
Address: 10.96.0.1

所以我的问题是,我应该在firewalld中添加任何端口吗?
让我知道是否有任何信息。我应该在这里补充。
谢谢。

最佳答案

您所应用的规则仅适用于Flannel通信,您需要允许所有Kubernetes端口使其正常工作。

在简历中,您需要为以下端口应用规则:

Control-plane node(s)
Protocol        Direction       Port Range      Purpose Used By
TCP     Inbound 6443*   Kubernetes API server   All
TCP     Inbound 2379-2380       etcd server client API  kube-apiserver, etcd
TCP     Inbound 10250   Kubelet API     Self, Control plane
TCP     Inbound 10251   kube-scheduler  Self
TCP     Inbound 10252   kube-controller-manager Self

Worker node(s)
Protocol        Direction       Port Range      Purpose Used By
TCP     Inbound 10250   Kubelet API     Self, Control plane
TCP     Inbound 30000-32767     NodePort Services†      All
† Default port range for NodePort Services.
~

Here,您可以看到控制平面和辅助节点的所有必需端口。

然后,在应用此规则之后,您需要应用其他2条规则以允许绒布网络,如here所示。

08-28 03:08