kubernetes的服务暴露Service的三种常用类型

一、kubernetes服务暴露介绍

1、什么是服务暴露?

要了解服务暴露,首先需要先知道什么是service,service可以看作是一组提供相同的pod对外的访问接口,借助service可以实现服务发现和负载均衡。服务暴露就是通过clusterIP或nodeport或loadbalancer等方式将pod内部的流量数据可以供外部访问的一种方式

2、service的类型?

service常见的类型有下面四种:
* Cluster IP : 默认值,是k8s系统给service自动分配的虚拟IP,只能在集群内部访问。
* NodePort: 将Service通过指定的Node上的端口暴露给外部,访问任意一个NodeIP:NodePort都将路由到Cluster IP
* LoadBlancer: 与NodePort类似,在每个节点上启动一个端口暴露服务。除此之外,kubernetes会请求底层云平台(如阿里云,腾讯云,AWS等)上的负载均衡器,将每个Node(NodeIP:NodePort)作为后端添加进去
* ExternalName: 将服务通过DNS Cname记录方式转发到指定的域名(通过spec.externlname设定)

3、service是实现原理是什么

Service是由kube-proxy组件,加上iptables来共同实现的
kube-proxy通过iptable处理service的过程,需要在宿主机上设置相当多的iptables规则,如果宿主机有大量的Pod在不断的刷新iptables规则,会不断的消耗CPU资源。
IPVS模式的service,可以使k8s集群支持更多量级的pod。
开启kube-proxy的ipvs模式方法:
* # yum -y install ipvasdm # 所有节点都安装
* # kubectl edit cm kube-proxy -n kube-system # 修改ipvs的模式为ipvs
mode:“ipvs”
* # kubectl get pod -n kube-system |grep kube-proxy |awk ‘{system(“kubectl delete pod “$1” -n kube-system”)}’
更新kube-proxy的pod

4、ingress介绍

Ingress公开了从集群外部到集群内部服务的HTTP和HTTP路由的规则集合,而具体实现流量路由则是由Ingress Controller负责。
Ingress:是k8s中的一个抽象资源,给管理员提供一个暴露应用的入口定义方法
Ingress Controller:根据Ingress生成具体的路由规则,并对Pod负载均衡器
使用流程是:1、部署INgress Crontroller 2、创建Ingress规则

二、kubernetes服务暴露三种常见类型的思维导图在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值