当前位置:首页 > 每日看点 > 正文内容

在 Kubernetes 中,Service 的实现原理是什么,它是如何实现服务发现的?

卡卷网11个月前 (11-20)每日看点181

行,问的这个问题挺有意思,Kubernetes 里 Service 是怎么实现的,服务发现是怎么回事,咱就直说了。这事儿看起来挺玄乎,但掰开揉碎了讲,也就那么回事。你得把这事儿想得简单点,别一上来就被啥术语吓住了——其实全是些搬砖的套路。

咱先从个大方向捋,Kubernetes 这东西,说白了就是个工头,它管理着一堆工人,也就是咱们那些服务(Pods)。你想在工地上指挥一堆工人干活儿,总得有个方式让他们互相认识吧?这就是服务发现的基本需求。然后,Kubernetes 的 Service 就是起了个“指路标”的作用——给工地的工人们找对门儿。

最近无意间获得一份阿里大佬写的刷题笔记,一下子打通了我的任督二脉,进大厂原来没那么难。这是大佬写的,7701页的BAT大佬写的刷题笔记,让我offer拿到手软

1. Service 是干啥的?

Kubernetes 的 Service 本质上就是个“中间商”,负责把请求从外部引导到具体的 Pod 上。为什么要 Service?很简单,因为你直接跟 Pod 打交道不靠谱。Pod 是会“挂”的,跟你的临时工一样,干一阵子走人了,来了新的 Pod,这时候外部流量还是傻乎乎地跑去找原来的 Pod,找不到了,这不就完犊子了么?

所以,Service 出来了,搞了个虚拟 IP,背后帮你去找 Pod。你就别管 Pod 换来换去了,反正都能接着用这个虚拟 IP 跟服务通信。

Kubernetes 里的 Service 有几种类型,最常见的就是 ClusterIP。你可以理解成,你站在工地门口,只能通过工地发号施令,但你不能直接进工地里面挑工人干活儿。Service 就是站在门口收任务,然后再悄悄把活儿分给工人。

2. 服务发现怎么玩的?

这个服务发现咋实现的呢?你要知道,工人(Pod)是动态的,今天来俩,明天走一个,工地还得照常干活儿。这就得靠 Kubernetes 自己给工人打卡登记了。

Service 有个牛逼的地方,叫做“标签选择器”(Label Selector)。简单来说,Kubernetes 会给每个 Pod 发一个小牌子(Label),比如“我是干前端的”或者“我是干数据库的”,然后 Service 就盯着这些牌子,按照需求把流量引过去。就像在工地上,你只要告诉 Service 你需要哪种工人,Service 就能从一堆 Pod 里挑出合适的给你用。

有的哥们可能会问,那服务一多,我怎么知道哪个服务对应哪个 Pod 呢?这就得提 DNS(域名解析)了。在 Kubernetes 里,集群内部有个自带的 DNS 服务,Service 一旦创建成功,Kubernetes 就会自动给它分配一个域名。你只需要通过这个域名就能找到 Service,就像在公司里发邮件一样,用名字就能找到同事,不用管背后换了多少电脑。

3. LoadBalancer 和 NodePort 这两货啥时候用?

ClusterIP 那一套咱们已经说了,它只在集群内部起作用。那问题来了,如果我想把服务暴露出去给外部的客户用呢?这时候你就得用 LoadBalancer 或者 NodePort。

LoadBalancer 其实就是给你配了个“公司前台”,外部请求来了,前台接单,再把活儿转到内部工人那儿去。这玩意儿更智能,自动帮你搞定所有负载均衡的事情,客户从外面看着还挺牛,但其实后面就是一堆工人不停地干活。

NodePort 是啥?这个比较原始,简直跟老工厂里守大门的保安一样。NodePort 是给每个工人直接开了个大门,客户一来,不管啥时候,总有人在门口守着,接到请求就送到工人那儿。你说这玩意儿听着多靠谱,其实毛病不少——你得自己维护这扇门,还不如前面那个自动接活儿的 LoadBalancer 省心。

4. 真实场景:怎么实现 Service 更新?

咱说点实际的,比如你想更新一个服务,但又不能影响客户使用,那 Service 是怎么做到的呢?其实很简单,叫做滚动更新。当你升级服务时,Kubernetes 会自动在后台干活儿,把老的 Pod 换成新的,而外部请求还是通过那个虚拟 IP 进入,这样不管你怎么换工人,客户都看不出来。这种操作简直就是职场里换人不换岗,你明明换了个菜鸟,但客户还是觉得你服务一如既往地好。

5. 可能的坑:Service 不能直接解决所有问题

当然了,Service 也不是万能的。你要指望它帮你搞定所有微服务之间的通信问题,那就是有点扯。比如说,服务间的安全性、数据的持久化、复杂的网络拓扑,Service 解决不了这些事儿,这就得靠你自己或者其他手段了。

总结一下,Kubernetes 里的 Service 本质上就是个“中介”,它帮你找到正确的 Pod,确保服务可用,而服务发现这一套则是通过标签选择器和内部 DNS 系统实现的。各种 Service 类型根据不同的需求来选用,搞清楚了这些,就知道啥场景用啥东西了。

Kubernetes 看着高大上,其实就是把复杂的事情简单化了。你真搞懂了它的原理,很多问题就不再是问题,毕竟服务发现这玩意儿,就像在职场里找对人干对事一样,你得有方法,别瞎跑。

好了,就这么多,有空了再聊。

免费看 500 套技术教程的网站,希望对你有帮助

程序员快看-教程,程序员编程资料站
最近无意间获得一份阿里大佬写的刷题笔记,一下子打通了我的任督二脉,进大厂原来没那么难。这是大佬写的,7701页的BAT大佬写的刷题笔记,让我offer拿到手软

求一键三连:点赞、分享、收藏

我的技术网站:cxykk.com 里面有,500套技术系列教程、1万+道,面试八股文、BAT面试真题、简历模版,工作经验分享、架构师成长之路,全部免费,欢迎收藏和转发。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/11/1081.html

分享给朋友:

相关文章

B 站上有哪些很好的学习资源?

B 站上有哪些很好的学习资源?

前!方!高!能!精选了多位学习Up主,不乏百万粉丝的大V,还有超多珍贵的学习资源推荐。进了小破站,完全不用担心学完了该怎么办?因为根本学不完啊!!!B站的学习干货实在太多了!语言学习葉子先生酱https://space.bilibili.c...

有没有推荐什么手游搬砖,或者是用手机就能做的工作能日入100左右就好了?

有没有推荐什么手游搬砖,或者是用手机就能做的工作能日入100左右就好了?

大家好,我是思聪。思聪游戏搬砖社每天分享真实靠谱的游戏赚钱的方法。整个游戏的攻略用一句话概括就是:打元宝兑换平台物品,xx元宝兑换一个分红物品。你把你打游戏得来的元宝去兑换平台的分红物品,就能每天领取xx元的分红。(具体看是哪个分红物品,比...

k70和红米note14pro+咋选啊?

k70和红米note14pro+咋选啊?

首选红米K70,可满足题主的功能需求。红米 Note 14 pro+的使用者定位并不是学生,红米K70的使用者定位才是学生。一、k70和红米note14pro+各自的参数红米K70推出的定位初衷,是主打性能为主。最佳使用对象是喜欢游戏者,...

报名的网课分期付款怎么退?

你在你分期付款的订单下面有客服电话,直接打电话描述一下你的问题,你可以告诉他你是被恶意绑定的,在不了解有退学条件这一说的情况下报的课程,可能遇到消费者诈骗了,不承认有退学金,说是霸王条款,诈骗消费者,你若分期了先把自动续费关了,别让自己个人...

荣耀magic 7 首发的应该都收到货了,感觉怎么样?

8号入手magic7,跟mate40pro比。优点:1、电池真耐用,充电块,华为电池也是新换的但是明显荣耀耐用;2、系统明显快多了,mate40pro下半年开始卡的不行,实在受不了了。3、声音、震动效果提升明显,指纹反应灵敏很多。 缺点:1...

如何看待台积电,三星相继停供大陆7nm及更先进芯片?

在这个事出来之前,我就看到过一个说法,两家Foundry可以在中东建厂,让中东的Fab去干“脏活”。本质上是国内企业搞几个中东的代理人,装作是中东的初创Fabless企业去下单,人家Foundry大概率睁一只眼闭一只眼,只管数钱。然而,紧接...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。