我将为我的 Kubernetes 工作节点添加一些安全性。 这个想法很简单。只需关闭端口并仅允许从主机访问即可。
Kubernetes 有一个页面,描述了所有 Kubernetes 端口。 https://kubernetes.io/docs/reference/networking/ports-and-protocols/
根据文档,开放端口 10250 就足够了,一切都应该没问题。但事实并非如此。
但是如果我创建非常简单的防火墙规则(没有IP,只有端口),那么master会停止查看工作节点。
我在工作节点上执行
netstat -ptl
,看到Kubernetes打开了更多端口,我将所有打开的端口添加到防火墙,但没有成功。 Master 看不到工作节点。
netstat -ptl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost.localdo:10248 0.0.0.0:* LISTEN 9908/kubelet
tcp 0 0 localhost.localdo:10249 0.0.0.0:* LISTEN 5968/kube-proxy
tcp 0 0 localhost.localdom:9099 0.0.0.0:* LISTEN 6880/calico-node
tcp 0 0 localhost.localdom:6443 0.0.0.0:* LISTEN 5427/nginx: master
tcp 0 0 localhost:domain 0.0.0.0:* LISTEN 10245/systemd-resol
tcp 0 0 infra-worker1:9254 0.0.0.0:* LISTEN 8389/node-cache
tcp 0 0 infra-worker1:domain 0.0.0.0:* LISTEN 8389/node-cache
tcp 0 0 infra-worker1:10250 0.0.0.0:* LISTEN 9908/kubelet
tcp 0 0 0.0.0.0:tproxy 0.0.0.0:* LISTEN 5427/nginx: master
tcp 0 0 localhost.localdo:32869 0.0.0.0:* LISTEN 3630/containerd
tcp6 0 0 [::]:10256 [::]:* LISTEN 5968/kube-proxy
tcp6 0 0 [::]:9253 [::]:* LISTEN 8389/node-cache
tcp6 0 0 [::]:9353 [::]:* LISTEN 8389/node-cache
tcp6 0 0 [::]:9100 [::]:* LISTEN 367744/node_exporte
我做错了什么或遗漏了什么?如果我删除所有规则,一切都会重新开始工作。
感谢您的帮助。