java怎么拦截某个对象
291
2022-10-29
第二十五章 九析带你轻松完爆 Istio - k8s 流量进入集群之 hostPort
系列文章:总目录索引:九析带你轻松完爆 istio 服务网格系列教程
目录
1 前言
2 邀约
3 hostPort 样例
4 hostPort 与 hostNetwork 异同
4.1 相同点
4.2 不同点
5 hostPort 使用场景
6 注意
1 前言
2 邀约
3 hostPort 样例
pod 发布之后,便会将容器端口开放给了外部网络。外部可以通过 pod 所在宿主机和 hostPort 值访问到 Pod 内的容器提供的服务。
4 hostPort 与 hostNetwork 异同
4.1 相同点
hostPort 与 hostNetwork 本质上都是暴露 pod 宿主机 IP 给终端用户,因为 pod 生命周期并不固定,随时都有可能被完爆,故 IP 的不确定最终导致用户使用上的不方便;此外宿主机端口占用也导致不能在同一台机子上有多个程序使用同一端口。因此一般情况下,不要使用 hostPort 方式。
4.2 不同点
使用 hostNetwork,pod 实际上用的是 pod 宿主机的网络地址空间:即 pod IP 是宿主机 IP,而非 cni 分配的 pod IP,端口是宿主机网络监听接口。
由上图可知,pod 所在宿主机上的 iptables nat 表流向如下:
1 当客户端发起 pod 访问时,比如 curl 网络包会流经 pod 宿主机的 prerouting chain,会命中 CNI-HOSTPORT-DNAT 链3 网络包会流经 CNI-HOSTPORT_DNAT 链中的第 3 条规则,即 DNAT 目标,此时会将 9998 端口访问的流量路由到 80 端口去
基于此,当客户端访问 pod 所在主机的 9998 端口时,流量会自动被路由到 IP 为 10.244.11.55(也就是 pod ip)的 80 端口上。
5 hostPort 使用场景
6 注意
当 pod 同时使用了 hostNetwork 和 hostPort,那么 hostNetwork 将会直接使用宿主机网络命名空间,hostPort 其实就形同虚设了。可以认为 hostNetwork 选项优先级要高于 hostPort。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~