开发者社区> 问答> 正文

如何通过iptables控制从外部访问某些Nodeport

我们有很多Nodeport设置的服务,可以通过外部服务器获得:。

我希望控制对某些服务的访问是一种常见的要求,这意味着来自某些IP的请求可能会访问它,而有些则不会。

我们想用它iptables来满足这个要求,因为kubernetes也使用它来建立通信,因此会引起很多困惑。我们是否有任何高级guidance设计/创建iptable规则来控制k8s服务?

具体来说,我在以下几个方面感到困惑:

我应该在哪个表中添加规则?我发现很多规则nat and filter都是由K8创建的
如果我什么停用的服务从一个外部IP某些节点的访问,比如 telnet : 我应该直接拒绝FORWARD或INPUT,或PREROUTING吗?
这些规则是否取决于特定的网络插件(例如flannel or weave)?不同的插件是否有不同的配置规则?
对于我的场景,我有以下规则要设置:

集群中的所有节点都full access应该相互拥有
某些核心服务(API)应仅由IP 接受certain
端口范围内的某些服务可以通过IP 接受all
拒绝any other所有IP(集群外)的服务访问
k8s版本:1.9.5网络插件:weave

展开
收起
k8s小能手 2018-12-14 16:19:00 2998 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    虽然您可以更改K8s节点上的iptables,但我不建议进行任何更改,因为K8s(kube-proxy)会不断动态更改规则。换句话说,Kubernetes管理(与叠加层结合)为您管理iptables。

    为了阻止流量,我强烈建议使用NetworkPolicies。如果您使用叠加层,则可以使用叠加层提供的内容。例如,Calico有自己的网络政策

    控制流量输入/输出的另一种方法是使用像Istio这样的服务网格。

    2019-07-17 23:21:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载