阻止docker操纵iptables规则的缺点是什么?



根据docker文档(重点是我的):

在Linux上,Docker操纵iptables规则来提供网络隔离。虽然这是一个实现细节(…)你不应该修改规则Docker插入到你的iptables策略…

可以在Docker引擎的配置文件/etc/docker/daemon.中设置iptables键为false但是这个选项对于大多数用户来说并不合适。要完全阻止Docker创建iptables规则是不可能的,而且事后创建规则非常复杂,超出了这些指令的范围。将iptables设置为false很可能会破坏Docker引擎的容器网络

文档确实非常清楚地表明你不应该混淆这些选项,但他们没有提供任何进一步的信息。那么,问题是禁用docker的iptables操作到底有什么问题?这将如何影响运行:

  • 独立的容器?
  • docker-compose吗?
  • docker-swarm模式?
  • kubernetes吗?

我假设容器互联网连接将通过手动为docker0设置NAT规则来处理,如下面所述。

我决定回答部分与Kubernetes相关的问题。典型的Kubernetes网络设置依赖于符合容器网络接口规范的第三方工具(CNI插件)。您可以找到不同的Kubernetes网络选项参考Kubernetes网络模型文档

Kubernetes有自己的一套iptables规则,由kube-proxy管理,在pod和服务之间进行各种过滤和NAT转换。最重要的链是KUBE-SERVICES,KUBE-SVC-*KUBE-SEP-*(参见:Kubernetes网络基础)。

同样重要的是要知道Kubernetes不需要使用docker默认桥接(docker0),因为它使用CNI进行网络设置。每个Kubernetes CNI插件的工作方式都有点不同,所以最好在官方文档中查看详细的概念。

相关内容

  • 没有找到相关文章