当前位置:首页 > 每日看点

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

卡卷网1年前 (2024-11-20)每日看点328

行,问的这个问题挺有意思,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

分享给朋友:

相关文章

有哪些正规的兼职平台?

1.阿里巴巴云客服:工作优点是时间自由,可自主选择班次,不需要去公司坐班,多做多得 2.蚂蚁云客服:同样是阿里巴巴旗下的兼职平台,工作优点是时间自由,可自主选择班次,不需要去公司坐班,多做多得。 3.菜鸟优加云客服:工作优点是时间自由,可自…

你捡过最大的漏是什么?

你捡过最大的漏是什么?

买了套二手房,软磨硬泡便宜了1个w 结果就是一屋子狼藉 原业主说反正你们要重新装修 就不收拾了 等完了你们一起收拾掉吧 落了很多柜子 电器是啥的 今天打开卧室柜子一看… 现在是去存钱的路上 有朋友知道这样存钱银行会给发大米跟油吗…

大家都是怎么把自己的粉丝增加到1000的呢?

大家都是怎么把自己的粉丝增加到1000的呢?

截至2024年10月30日,关注者总数1137人,用时80天,增速约14人/天。 2024年8月10日开始创作,连续一周,1个关注者都没有。创作第7天,得到第一个关注,7天时间,写了8篇回答。当天得到关注,激动的心情历历在目。 没有一个…

有没有能够兼顾便携并且流畅运行各种AI应用的笔记本?求推荐?

有没有能够兼顾便携并且流畅运行各种AI应用的笔记本?求推荐?

看了下题主的描述,可以考虑「联想YOGA Air 15 Aura AI元启版」,今年9月底出的一款轻薄本,也通过了英特尔Evo严苛认证。 处理器用了英特尔最新的「酷睿 Ultra 7 258V」,主要亮点就是AI性能、图形处理能力和能效,很…

拼多多百亿补贴买手机电脑等数码产品靠谱吗?

大家很多人都在问pdd百亿补贴购机靠谱吗? 首先声明一下,我不是pdd的人,我只是一个普普通通混迹从事pc行业的数码玩家,我只是在评论区看到很多人都在无脑推百亿补贴,特地发一条怗子来说明一下这个东西。此怡不存在偏向引导,此站仅站在我个人角度…

为什么神经网络可以解偏微分方程,是什么原理?

为什么神经网络可以解偏微分方程,是什么原理?

题主一直比较关心神经网络在其他科学领域的应用,比如数学、物理学还有生物学,比如AlphaFold。本次带来的这篇文章傅里叶神经网络算子解偏微分方程就是一个很有意思的方向,其实我自己去年在给美国一个客户做兼职预测数字货币期权价格的时候就用到过…

发表评论

访客

看不清,换一张

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