0
点赞
收藏
分享

微信扫一扫

k8s进阶6-应用层服务暴露方式

一、K8S应用层面的服务暴露方式:

K8S 在集群架构层面有三类IP:分别为 Node Network (物理节点网络)、 Pod Network(pod容器网络) 、 Cluster Network(集群网络,也称为 Service NetWork )。

Pod 服务层面的暴露方式常用如下几种分类:

  • ClusterIP:当 service 的type 为 ClusterIP 的时候,服务只能在集群内部访问。(默认的ServiceType)可以访问集群外接数据库。
  • NodePort: 当 service 的type 为 NodePort 的时候,会将 service 的IP和端口映射到 所有node节点 的IP和端口。
  • hostPort: 当 service 的type 为 hostPort 的时候,类似docker -p 参数做的端口映射,将容器内端口映射到 当前宿主机 上(hostPort),
  • LoadBalancer:使用云服务商的负载均衡器。外部的负载均衡器可以路由到 NodePort 服务 和 ClusterIP 服务。
  • Ingress:创建一 个Ingress资源, 这是一 个完全不同的机制,通过一 个IP地址公开多个服务,就是一个网关入口,类似:springcloud的网关zuul、gateway

NodePort:

k8s进阶6-应用层服务暴露方式_IP

LoadBalance:

k8s进阶6-应用层服务暴露方式_端口映射_02

二、应用访问的具体链路(K8S层面)

当我们访问一个k8s 集群内部的服务的时候,集群内流量的走向为 :

用户输入域名 --> 通过各种解析到 k8s 集群的工作节点上的 ingress --> ingress 将流量代理到 service:端口上 --> servic 通过寻找 endpointd 里面封装的 pod ip:端口 --> 通过 kube-proxy 在 ipvs 或者 iptables 中封装的规则调度到指定的 pod 上。

举报

相关推荐

0 条评论