Kubernetes工作节点的防火墙规则(端口)

问题描述 投票:0回答:1

我将为我的 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 

我做错了什么或遗漏了什么?如果我删除所有规则,一切都会重新开始工作。

这是包含防火墙规则的表。

感谢您的帮助。

linux kubernetes firewall iptables
1个回答
0
投票

我回答这个问题是因为我注意到您的集群中正在运行 calico-node。

您可能会发现阅读有关“保护主机”的 Calico 开源文档很有用。如果您使用 Calico,它会使用在所有主机端点上打开特定端口和 CIDR 的故障安全规则,这样您就不会因为网络策略不存在或配置错误而无意中切断所有主机连接。 您还可以阅读这些

保护 kubernetes 环境的最佳实践

如果您在集群中使用 Calico OSS 进行网络连接,请随时加入

calico users slack group

并在那里获得更多帮助。

© www.soinside.com 2019 - 2024. All rights reserved.