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


    一、kubernetes服务暴露介绍

    1、什么是服务暴露?

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

    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服务暴露三种常见类型的思维导图在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    129-Vue中表单修饰符
    ESP8266--SDK开发(延时、定时器)
    射频功率放大器应用中GaN HEMT的表面电势模型
    iOS16更新后打不开微信 解决办法来了
    GPU如何成为AI的加速器
    stm32 下载程序只能使用串口1
    (附源码)spring boot学科竞赛活动报名系统 毕业设计 012239
    React技巧之表单提交获取input值
    智能AI知识库,增强AI知识的开源项目
    物流工业三防平板实时跟踪货物位置和状态
  • 原文地址:https://blog.csdn.net/Laiyunpeng666/article/details/126773621