【发布时间】:2018-12-07 08:33:34
【问题描述】:
我们有很多由 Nodeport 设置的服务,并且可以通过 <node_ip>:<node_port> 从外部获得。
我想控制对某些服务的访问应该是一个常见的要求,这意味着来自某些 IP 的请求可以访问它,而另一些则不能。
我们想使用iptables 来满足这个要求,这会引起很多困惑,因为 kubernetes 也使用它来建立通信。
我们是否有任何高级guidance 来设计/创建 iptable 规则来控制 k8s 服务?
具体来说,我在以下方面感到困惑:
- 我应该将规则附加到哪个表中?我发现
nat and filter中的很多规则都是由K8s创建的 - 如果我要禁用从一个外部 IP 到某个节点的服务访问,例如
telnet <node_ip>:<node_port>我应该直接拒绝FORWARD或INPUT还是PREROUTING? - 这些规则是否依赖于特定的网络插件(例如法兰绒或编织)?不同的插件是否有不同的规则配置方式?
对于我的场景,我需要设置以下规则:
- 集群中的所有节点应该有
full accessto彼此 - 某些核心服务 (API) 只能由
certainIP接受 - 端口范围内的某些服务可以被
allIPs接受 -
拒绝从所有 IP(集群外)访问
any other服务
k8s 版本:1.9.5 网络插件:编织
最好的问候!
/分类支持
【问题讨论】:
标签: kubernetes iptables