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

    在这里插入图片描述

  • 相关阅读:
    二、.Net Core搭建Ocelot
    【高并发基础】理解 MVCC 及提炼实现思想
    c语言指针加减法
    5G+AI:IoT下半场的智能化底座
    495. Teemo Attacking
    drawio快捷键
    数据中心的供配电系统
    Codeforces Round 952 (Div. 4)(实时更新)
    EANet:用于医学图像分割的迭代边缘注意力网络
    【Linux】Stratis是什么?Stratis和LVM有什么关系和区别?
  • 原文地址:https://blog.csdn.net/Laiyunpeng666/article/details/126773621