国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Kubernetes 中的服務(wù)注冊(cè)與發(fā)現(xiàn)原理分析

云計(jì)算 云原生
服務(wù)注冊(cè)與發(fā)現(xiàn)是一種機(jī)制,用于在集群中動(dòng)態(tài)地發(fā)現(xiàn)和連接不同的服務(wù),比如我們?cè)陂_(kāi)發(fā)微服務(wù)時(shí),經(jīng)常使用的Eureka、Nacos等。

對(duì)k8s有點(diǎn)了解技術(shù)人員,應(yīng)該都只知道k8s是有服務(wù)注冊(cè)發(fā)現(xiàn)的,今天就分析下這個(gè)原理,看看怎么實(shí)現(xiàn)的。

什么是服務(wù)注冊(cè)與發(fā)現(xiàn)

服務(wù)注冊(cè)與發(fā)現(xiàn)是一種機(jī)制,用于在集群中動(dòng)態(tài)地發(fā)現(xiàn)和連接不同的服務(wù),比如我們?cè)陂_(kāi)發(fā)微服務(wù)時(shí),經(jīng)常使用的Eureka、Nacos等

Service B 把自己注冊(cè)到 Service Registry 叫做 服務(wù)注冊(cè)

Service A 從 Service Registry 發(fā)現(xiàn) Service B 的節(jié)點(diǎn)信息叫做 服務(wù)發(fā)現(xiàn)

K8s 中為什么需要服務(wù)發(fā)現(xiàn)

動(dòng)態(tài)性

在K8s集群中,Pod和服務(wù)的數(shù)量和位置都是動(dòng)態(tài)變化的,Pod有可能伸縮、重新部署或遷移,在這樣的環(huán)境下,如果硬編碼的服務(wù)地址是不可行的,所以服務(wù)注冊(cè)與發(fā)現(xiàn)使得我們的系統(tǒng)能夠自動(dòng)感知到這種變化。

透明性

服務(wù)注冊(cè)與發(fā)現(xiàn)使得我們的系統(tǒng)可以使用服務(wù)名稱(chēng)來(lái)訪問(wèn)其他服務(wù),而不需要關(guān)心具體的IP地址和端口號(hào)。

負(fù)載均衡

通過(guò)服務(wù)注冊(cè)與發(fā)現(xiàn)可以實(shí)現(xiàn)負(fù)載均衡,將請(qǐng)求均勻地分發(fā)到多個(gè)后端服務(wù)實(shí)例。

容錯(cuò)性

當(dāng)服務(wù)實(shí)例發(fā)生故障或不可用時(shí),服務(wù)注冊(cè)與發(fā)現(xiàn)可以自動(dòng)檢測(cè)并從服務(wù)發(fā)現(xiàn)機(jī)制中移除不可用的實(shí)例。這樣,請(qǐng)求將被自動(dòng)路由到可用的實(shí)例上,提高應(yīng)用程序的容錯(cuò)性和可用性。

k8s 服務(wù)注冊(cè)發(fā)現(xiàn)原理

基于上面的介紹,我們了解到K8s中的Pod的生命周期是短暫的,他們的IP地址會(huì)不斷變化,如果讓服務(wù)消費(fèi)方去管理這些Pod IP在做負(fù)載均衡調(diào)用Pod,那么會(huì)很復(fù)雜,為了對(duì)外提供統(tǒng)一的入口來(lái)提供服務(wù),所以k8s創(chuàng)建了Service,不管是內(nèi)部還是外部統(tǒng)一調(diào)用 Service,然后再由 Service 轉(zhuǎn)發(fā)到后端Pod

Endpoints

Pod 的地址管理則由Endpoints管理,根據(jù)Service名稱(chēng)可以查詢(xún)Endpoints信息,當(dāng)通過(guò)API創(chuàng)建/修改service對(duì)象時(shí),endpoints控制器的監(jiān)聽(tīng)到Service對(duì)象,然后根據(jù)Service的配置的選擇器創(chuàng)建一個(gè)endpoints對(duì)象,此對(duì)象將pod的IP、容器端口信息存儲(chǔ)到etcd中。

他們之間關(guān)系如下:

同時(shí)Endpoints控制器會(huì)監(jiān)聽(tīng)與Pod相關(guān)的事件,包括上下線(xiàn)事件,一旦Endpoints控制器接收到這些事件,它會(huì)相應(yīng)地更新Endpoints資源,將不可用的Pod從Endpoints列表中移除。

域名解析

由于Service的 IP有可能會(huì)變,如果在代碼里面寫(xiě)死Service IP后期維護(hù)起來(lái)也是比較麻煩的事情,所以通過(guò)在創(chuàng)建一個(gè)Service時(shí),CoreDNS會(huì)為該Service添加一個(gè)域名解析記錄,將Service的名稱(chēng)解析為相應(yīng)的Cluster IP地址。這樣其他Pod或服務(wù)可以通過(guò)使用Service名稱(chēng)來(lái)訪問(wèn)該Service。

kube-proxy

kube-proxy 是集群中每個(gè)節(jié)點(diǎn)上運(yùn)行的網(wǎng)絡(luò)代理,它負(fù)責(zé)將集群內(nèi)部的Service暴露給其他Pod或外部網(wǎng)絡(luò)。它通過(guò)在Node節(jié)點(diǎn)上設(shè)置網(wǎng)絡(luò)規(guī)則和轉(zhuǎn)發(fā)規(guī)則,將Service的請(qǐng)求轉(zhuǎn)發(fā)到正確的目標(biāo)Pod

同時(shí)kube-proxy實(shí)現(xiàn)負(fù)載均衡算法,將進(jìn)入Service的請(qǐng)求均勻地分發(fā)到后端的Pod實(shí)例。這確保了在多個(gè)副本的情況下,Service能夠平衡地處理請(qǐng)求,提高可用性和性能。

kube-proxy 通過(guò)監(jiān)聽(tīng)知道了Service、endpoints對(duì)象的創(chuàng)建,然后把Service的CLUSTER-IP 和端口信息拿出來(lái),創(chuàng)建iptables NAT規(guī)則做轉(zhuǎn)發(fā)或通過(guò)ipvs模塊創(chuàng)建VS服務(wù)器,這樣經(jīng)過(guò)CLUSTER-IP的流量都被轉(zhuǎn)發(fā)到后端pod。

當(dāng)Service的目標(biāo)Pod位于同一節(jié)點(diǎn)上時(shí),kube-proxy會(huì)將請(qǐng)求直接轉(zhuǎn)發(fā)到該節(jié)點(diǎn)上的Pod,而不會(huì)跨節(jié)點(diǎn)轉(zhuǎn)發(fā)。這種情況下,請(qǐng)求不會(huì)被發(fā)送到其他節(jié)點(diǎn)上。

然而,如果Service的目標(biāo)Pod分布在多個(gè)節(jié)點(diǎn)上,kube-proxy可以通過(guò)負(fù)載均衡算法將請(qǐng)求轉(zhuǎn)發(fā)到其他節(jié)點(diǎn)上的Pod。

示例演示

下面我們基于兩個(gè)配置文件,驗(yàn)證下上面的結(jié)論

nginx-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 4
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: mirrorgooglecontainers/serve_hostname
        ports:
        - containerPort: 80

serve_hostname是k8s官方提供的debug鏡像,返回hostname的web server,訪問(wèn)pod時(shí)會(huì)返回hostname。

nginx-service.yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  ports:
    - name: service-port
      port: 80
      protocol: TCP
      targetPort: 9376
  selector:
    app: nginx
  type: ClusterIP

可以看到service 的selector屬性指定了app: nginx,這樣就能匹配 deplyment 中定義的 nginx pod

我們依次執(zhí)行以上兩個(gè)文件,最后獲取到信息如下

Service地址查看

kubectl get svc nginx-service

Pod信息查看

kubectl get pods -l app=nginx -o wide

Endpoints信息查看

根據(jù)service名稱(chēng)查詢(xún)

kubectl get ep nginx-service

CoreDNS信息驗(yàn)證

登錄任意Pod,執(zhí)行ping命令,可以看到根據(jù)Service 名稱(chēng)解析到了Service cluster ip

負(fù)載均衡驗(yàn)證

登錄任意 pod,執(zhí)行curl nginx-service,請(qǐng)求 service的 80 端口,會(huì)返回目標(biāo) pod名稱(chēng)

以上我們講了什么是服務(wù)發(fā)現(xiàn),以及 k8s 的服務(wù)發(fā)現(xiàn)是怎么實(shí)現(xiàn)的,希望對(duì)你有所幫助。

責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2021-04-20 17:20:59

SpringColud EurekaNetflix開(kāi)發(fā)

2015-12-25 11:00:52

Zookeeper的Python

2022-04-26 05:36:42

服務(wù)治理模式

2022-01-16 23:10:40

語(yǔ)言服務(wù)注冊(cè)

2025-01-20 00:10:00

Go語(yǔ)言Kratos

2021-08-02 07:57:03

注冊(cè)Nacos源碼

2020-11-02 12:50:29

分布式系統(tǒng)服務(wù)

2023-01-30 22:43:39

DubboZooKeeper

2022-02-09 07:03:01

SpringNacos服務(wù)注冊(cè)

2015-09-23 16:14:03

Ryu拓?fù)浣Y(jié)構(gòu)

2022-02-07 07:10:32

服務(wù)注冊(cè)功能

2017-06-25 13:33:25

Spring Clou微服務(wù)架構(gòu)

2021-09-07 09:18:18

Kubernetes負(fù)載均衡服務(wù)發(fā)現(xiàn)

2025-01-09 08:32:50

2019-12-24 09:39:06

Kubernetes工具微服務(wù)

2022-06-08 10:17:51

服務(wù)管理通信

2020-11-23 14:56:36

Eureka

2022-06-17 12:05:25

微服務(wù)注冊(cè)

2022-08-15 11:28:22

handler注冊(cè)過(guò)程APiServer

2022-03-28 11:27:17

Kubernetes運(yùn)維服務(wù)發(fā)現(xiàn)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美sm一区| 粉嫩一区二区三区四区公司1| 欧美日韩一区二区在线观看| 丁香综合av| 国产精品久久av| 久久精品亚洲精品国产欧美kt∨| 激情亚洲影院在线观看| 日本在线观看不卡| 天天影视色香欲综合网老头| 亚洲欧洲一二区| 日韩资源av在线| 精品成人a区在线观看| 一本色道久久综合一区| 黄色片网站在线观看| 久久久久久高清| 日韩精品一区在线观看| 久久综合亚州| 看黄网站在线| 欧美成人第一区| 婷婷综合在线观看| 国产精品国产三级国产在线观看| 天堂在线视频| 欧美成人午夜激情| 欧美亚洲一区| 啊啊啊久久久| 欧美中文字幕一区| 欧美一区亚洲| 免费看一区二区三区| 国产日本在线视频| 国产情侣av自拍| 一区二区成人国产精品| 国产精品久久久久久久9999| 亚洲香蕉av在线一区二区三区| 亚洲激情中文字幕| 亚洲天天做日日做天天谢日日欢| 极品裸体白嫩激情啪啪国产精品| 最新国产精品精品视频| 中文字幕中文字幕在线中高清免费版| 日本五码在线| 一级片视频免费观看| 国产偷久久久精品专区| 久久人人爽人人| 最好看的2019年中文视频| 91麻豆精品国产91久久久久久 | 美女脱光内衣内裤视频久久影院| 久久九九久久九九| 欧美一区二区三区视频在线观看| 亚洲福利视频专区| 久操成人在线视频| 日韩精品视频在线免费观看| 久久青草精品视频免费观看| 茄子视频成人在线观看 | 老牛影视av一区二区在线观看| 久草中文在线| 99久久久国产| 日韩欧美一区二区三区在线观看 | 自拍偷拍亚洲在线| 欧美图区在线视频| 中文字幕亚洲第一| 热久久这里只有精品| 久久人人爽爽人人爽人人片av| 成年丰满熟妇午夜免费视频| 激情小说激情视频| 俺来也官网欧美久久精品| 2020国产精品极品色在线观看| 午夜天堂精品久久久久| 久久青草欧美一区二区三区| 精品视频免费在线| 国产精品成人一区二区三区吃奶| 97视频热人人精品| 久久久久久久久久久久久国产精品| 天堂av电影在线观看| 日韩成人在线电影| 国产乱妇无码大片在线观看| 亚洲影院在线观看| 国产精品高精视频免费| 久久精品国产一区二区三区不卡| 欧美理论片在线播放| 91成人看片| 国产精品成人免费| 欧美精品videofree1080p| 777777av| 你懂得在线网址| 激情另类综合| 亚洲福利视频网站| 久草综合在线观看| 久久中文字幕av一区二区不卡| 亚洲国产精品久久人人爱| 91精品视频观看| 牛牛在线精品视频| 蘑菇福利视频一区播放| 日韩欧美国产综合一区 | 爱草在线视频| 免费大片在线观看| 1769免费视频在线观看| 97精品视频在线观看自产线路二| 日本精品va在线观看| 麻豆视频在线免费观看| 日韩精品视频网站| 欧美一区二区黄| 青青视频在线播放| 亚洲第一精品影视| 91福利在线播放| 日韩精品一区二区免费| 在线观看的网站你懂的| 国产精品午夜在线| 欧美精品尤物在线| 国产有码在线| 六月婷婷一区| 在线观看国产日韩| 看一级黄色录像| 成人观看网址| 中文字幕亚洲精品乱码| 精品日本美女福利在线观看| 国产主播欧美精品| 中文在线免费| 国产福利不卡视频| 日韩久久精品成人| 国产熟人av一二三区| 久久久国产精品| 亚洲影院免费观看| 欧美一级二级三级| 一区二区三区四区日本视频| 99国产成+人+综合+亚洲欧美| 亚洲乱码国产乱码精品精天堂 | 国产免费又粗又猛又爽| 欧美日韩理论| 欧美精品一区二区三区蜜桃 | 91在线视频观看免费| 亚洲黄页在线观看| 欧美日韩一区二区三区| 欧美日韩国产综合在线| 成人在线观看免费播放| 亚洲精品国产品国语在线app| 成人影片在线播放| 免费在线小视频| 亚洲自拍偷拍av| 亚洲狠狠婷婷综合久久久| 国产伦一区二区三区| 精品乱人伦一区二区三区| 天天干天天操天天玩| 九色|91porny| 久久久久久久成人| 四虎精品成人影院观看地址| 日本欧美一区二区在线观看| 亚洲午夜av电影| 黄色片视频在线观看| 成人听书哪个软件好| 日本高清久久一区二区三区| 欧美一区二区性| 欧美激情欧美狂野欧美精品| av在线不卡播放| 麻豆精品在线看| 精品欧美日韩在线| 91视频久久| 中文字幕亚洲图片| 在线精品亚洲一区二区不卡| 免费观看美女裸体网站| 国产尤物一区二区| 欧美在线播放一区| 久久精品国产www456c0m| 欧美精品久久久久| av免费不卡国产观看| 久久亚洲二区三区| 日韩精品视频在线观看视频| 国产精品人人爽人人做我的可爱| 精品国模在线视频| 国产精品久久乐| 欧美日韩国产综合一区二区三区 | 国产精品久久久久蜜臀| 国产精品综合不卡av| 操欧美老女人| 欧美精品久久久久久久久| 91麻豆免费在线视频| 欧美大片顶级少妇| 超碰97免费在线| 亚洲国产欧美在线成人app | 亚洲激情av在线| 另类av导航| 91官网在线免费观看| 三级毛片在线免费看| 欧美中文字幕一区二区三区| 亚洲综合色视频在线观看| 91高清视频免费看| 国内精品在线视频| 17c精品麻豆一区二区免费| 日韩av卡一卡二| 中文字幕中文乱码欧美一区二区 | 99久久免费精品国产72精品九九| 欧美国产精品va在线观看| 欧美熟乱15p| 99久久精品免费看国产四区 | 日韩av在线中文字幕| 日本中文字幕久久看| 成人久久电影| 午夜精品视频在线| av一区二区在线播放| 一区二区三区四区五区精品| 久热综合在线亚洲精品| 亚洲一区二区三区四区中文|