關於端口的官方說明:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
k8s master需要開啟以下端口
firewall-cmd --permanent --add-port=6443/tcp firewall-cmd --permanent --add-port=2379-2380/tcp firewall-cmd --permanent --add-port=10250/tcp firewall-cmd --permanent --add-port=10251/tcp firewall-cmd --permanent --add-port=10252/tcp firewall-cmd --permanent --add-port=10255/tcp firewall-cmd --permanent --add-port=8472/udp firewall-cmd --permanent --add-port=443/udp firewall-cmd --permanent --add-port=53/udp firewall-cmd --permanent --add-port=53/tcp firewall-cmd --permanent --add-port=9153/tcp firewall-cmd --add-masquerade --permanent # only if you want NodePorts exposed on control plane IP as well firewall-cmd --permanent --add-port=30000-32767/tcp systemctl restart firewalld
k8s node需要開啟以下端口
firewall-cmd --permanent --add-port=10250/tcp firewall-cmd --permanent --add-port=10255/tcp firewall-cmd --permanent --add-port=8472/udp firewall-cmd --permanent --add-port=443/udp firewall-cmd --permanent --add-port=30000-32767/tcp firewall-cmd --permanent --add-port=53/udp firewall-cmd --permanent --add-port=53/tcp firewall-cmd --permanent --add-port=9153/tcp firewall-cmd --add-masquerade --permanent systemctl restart firewalld
以下幾點需要特別注意:
8472/udp為flannel的通信端口
443/tcp 為Kubernetes server端口
注意一點:一定要執行以下命令打開NAT,默認是關閉狀態,這里踩過坑!!
firewall-cmd --add-masquerade --permanent # 檢查是否允許NAT轉發 firewall-cmd --query-masquerade # 關閉NAT轉發 firewall-cmd --remove-masquerade
如果你使用了istio還有把istio-pilot的端口加到防火牆里:
firewall-cmd --permanent --add-port=15010-15014/tcp
否則會出現以下報錯:
Envoy proxy is NOT ready