hostPort 和NodePort

hostPort 只会在运行机器上开启端口, NodePort 是所有 Node 上都会开启端口。
hostPort是由 portmap 这个 cni 提供 portMapping 能力,同时如果想使用这个能力,在配置文件中一定需要开启 portmap

  • 使用 hostPort 后,会在 iptables 的 nat 链中插入相应的规则,而且这些规则是在 KUBE- SERVICES 规则之前插入的,也就是说会优先匹配 hostPort 的规则,我们常用的 NodePort 规则其实是在 KUBE- SERVICES 之中,也排在其后.

  • hostport 可以通过 iptables 命令查看到, 但是无法在 ipvsadm 中查看到

  • 使用 lsof/netstat 也查看不到这个端口,这是因为 hostport 是通过 iptables 对请求中的目的端口进行转发的,并不是在主机上通过端口监听

  • 在生产环境中不建议使用hostPort

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐