集群内访问

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,记住服务名对应的域名更加容易。

集群外网访问

ClusterIP

Untitled

image.png

NodePort

Untitled

image.png

image.png

LoadBlancer

LoadBalancer 类型的 Service 时,系统会为该 Service 创建或复用一个外部的负载均衡器(Cloud Load Balancer,CLB),用于向公网或者内网暴露服务。负载均衡器支持转发到 NodePort 服务,也支持直接转发到处于 VPC-CNI 网络模式下的容器中。

在非 Pod 直通模式下,流量经由节点 NodePort 转发到 Pod 中。

在 Pod 直通模式下,Pod 会被直接添加到 CLB 后端,外部的请求会直接转发到 Pod,不会再经过节点进行转发。适用于对网络有性能要求的场景。