• K8S核心概念之SVC(易混淆难理解知识点总结)


    本文将结合实际工作当中遇到的一些问题和情况来解析SVC的作用以及一些比较易混淆和难理解的概念,方便日后工作用到或者遗忘时可以直接在自己曾经学习总结的博客当中直接查找到。

    首先应该清楚SVC的作用是什么,SVC主要有以下两个作用:、

    一、服务发现

    现在工作当中都将微服务项目部署到K8S上,因为每个项目都是很多个服务的集合,每个服务一般又都是由很多个pod组成的,那么当请求想要访问这个服务的时候如何将请求能够很好地找到这些POD并将请求分发给他们呢?
    即使是同一组服务他们的pod是在集群的不同位置的,Ip也就各不相同,SVC就可以有效地将同一组服务绑定在一起,也就是提供了一个统一的服务访问的入口,无论他们分发到哪个节点,也无论他们被分发了多少个不同的IP,SVC都可以做到将请求转发到这组服务的其中一个POD中进行处理,k8s在创建SVC时候,会根据标签选择器selector(Lable selector)来查找pod,据此创建与SVC同名的endpoint对象,当pod地址发生变化时,endpoint也会随之发生变化,SVC接收到前端client请求的时候,就会通过endpoint,找到要转发到哪个Pod进行访问网站的地址。(至于要转发到哪个节点的Pod,由负载均衡kube-proxy起初就决定好了的)
    这里面有几个点需要说明一下:

    1.endpoint是k8s集群中的一个资源对象,存储在etcd中,用来记录一个service对应的所有pod的访问地址。
    2.只有当service配置selector(选择器) ,endpoint controller才会自动创建对应的endpoint对象,否则,不会生成endpoint对象。
    3.例:

  • 相关阅读:
    基于PHP+MySQL菜品食谱美食网站的设计与实现
    oracle标准版不支持tts
    微服务项目:尚融宝(40)(核心业务流程:申请借款额度(3))
    C#拾遗补漏之goto跳转语句
    多用户对应多租户解决方案
    【6】Docker中部署Nginx
    第七章---内置模块
    计算机网络实验——基于TCP协议的socket编程
    JDK JRE JVM解释及Java代码编译运行过程
    【11.1】【VP】Codeforces Round #730 (Div. 2)
  • 原文地址:https://blog.csdn.net/m0_67698950/article/details/126414718