https://kubernetes.io/zh-cn/docs/concepts/services-networking/service-traffic-policy/
在k8s中创建的微服务,大部分都是在集群内部互相调用,这时候,使用DNS就可以很方面访问。
比如:服务名是 my-service,端口号是8080,命名空间是yifan,那么就可以通过域名+端口 “my-service.yifan.svc.cluster.local:8080” 在集群内访问。
当然,也可以直接用服务的ClusterIP+服务的端口号,只是这么使用的较少。
DNS解析到的IP也就是这个服务的ClusterIP,只是咱们不需要记住ClusterIP,记住服务名对应的域名更加容易。
IPtables。由于VIP没有挂接到网络设备,所以不能直接访问。

<NodeIP>:<NodePort> 从集群外部访问 Service。是 ClusterIP 的超集。
NodePort会在所有节点(图示中的VM)上开放一个特定端口(图示中的30007),任何发送到该端口的流量都被转发到对应服务(图示中的Service)


LoadBalancer 类型的 Service 时,系统会为该 Service 创建或复用一个外部的负载均衡器(Cloud Load Balancer,CLB),用于向公网或者内网暴露服务。负载均衡器支持转发到 NodePort 服务,也支持直接转发到处于 VPC-CNI 网络模式下的容器中。
在非 Pod 直通模式下,流量经由节点 NodePort 转发到 Pod 中。
在 Pod 直通模式下,Pod 会被直接添加到 CLB 后端,外部的请求会直接转发到 Pod,不会再经过节点进行转发。适用于对网络有性能要求的场景。