k8s集群化部署之使用service暴露应用
一、service简介service是一个抽象概念,定义了一个服务的多个pod逻辑合集和访问pod的策略,一般把service称为微服务。可以通过type在ServiceSpec中指定一个需要的类型的 Service,Service的四种type:ClusterIP(默认) - 在集群中内部IP上暴露服务。此类型使Service只能从群集中访问。NodePort - 通过每个 Node 上的 IP
一、service简介
service是一个抽象概念,定义了一个服务的多个pod逻辑合集和访问pod的策略,一般把service称为微服务。service使得外部可以访问集群内部的pod并且可以实现负载均衡。
可以通过type在ServiceSpec中指定一个需要的类型的 Service,Service的四种type:
ClusterIP(默认) - 在集群中内部IP上暴露服务。此类型使Service只能从群集中访问。
NodePort - 通过每个 Node 上的 IP 和静态端口(NodePort)暴露服务。NodePort 服务会路由到 ClusterIP 服务,这个 ClusterIP 服务会自动创建。通过请求 NodeIP:NodePort,可以从集群的外部访问一个 NodePort 服务。
LoadBalancer - 使用云提供商的负载均衡器(如果支持),可以向外部暴露服务。外部的负载均衡器可以路由到 NodePort 服务和 ClusterIP 服务。
ExternalName - 通过返回 CNAME 和它的值,可以将服务映射到 externalName 字段的内容,没有任何类型代理被创建。这种类型需要v1.7版本或更高版本kube-dnsc才支持。
二、service使用
使用之前使用deployment创建的pod做端口映射
上图中service的type为ClusterIP,Endpoints中的两个ip均为虚拟ip
service是通过labels来动态识别pod的
此时pod客户端可以通过service的名称访问后端的两个Pod,并且是负载均衡的
以上通过cluster-ip访问后端两个pod的方式需要依附另外一个pod
若要想从外部直接访问pod,需要更改service中的type类型,在cluster-ip的基础上随机分配一个端口号,此端口就在工作节点上
此时访问pod时通过节点IP+端口号
更多推荐
所有评论(0)