Docker 的優點
783
2025-04-04
3.4.3 namer
namer用于配置Linkerd的服務發現工具,Linkerd支持配置多個namer以滿足不同需求,每個namer可對應一種服務發現機制,它負責把服務名字經過dtab轉換得到的客戶端名字解析為IP地址和端口集合。當前版本Linkerd支持多種服務發現工具,如基于文件的服務發現機制、ZooKeeper、Consul等,甚至支持發現運行在k8s和marathon編排工具中的服務,使得Linkerd直接從k8s和marathon讀取服務相關信息。namer配置包括下列內容。
kind:指定選擇哪種類型的服務發現工具,比如上一章中使用的基于文件的服務發現,其類型為io.l5d.fs,還有本章將使用的Consul,其類型為io.l5d.consul。對namer配置,kind是強制要求配置的,否則出錯。當前,Linkerd支持的namer類型有:
io.l5d.fs
io.l5d.serversets
io.l5d.consul
io.l5d.k8s
io.l5d.marathon
io.l5d.zkLeader
io.l5d.curator
io.l5d.rancher
io.l5d.rewrite
每種類型namer具體配置可參考官方文檔namers(https://linkerd.io/config/1.3.6/linkerd/index.html#namers),在此不作一一介紹,本章著重介紹類型為io.l5d.consul的namer,當然后續章節也會對類型為io.l5d.k8s的namer進行詳細介紹。
prefix:prefix依賴于namer,默認為/+kind對應的值,如/io.l5d.consul,也可將其自定義為任意其他以/打頭的值。namer在解析名字時以/#+prefix作為前綴,如/#/io.l5d.consul/dc1/booking。
transformers:用于轉換已解析得到的地址,后續會詳細介紹。
experimental:標識namer是否處于試驗狀態,默認為false。
另外,基于所選擇的namer類型,除配置上述通用配置外,可能還需配置特定額外配置,如示例中使用io.l5d.consul類型的namer除通用配置外,還需配置Consul地址和端口、是否包括服務標簽、是否使用Consul的健康監測數據判斷服務健康與否等,其配置如下。
namers:
- kind: io.l5d.consul
prefix: /io.l5d.consul
host: 127.0.0.1
port: 8500
includeTag: false
setHost: false
useHealthCheck: true
還有,Linkerd提供兩種特殊的內置namer:inet和io.buoyant.rinet,其中inet對形如/$/inet/DNSOrIPAddress/Port的客戶端名字進行解析,若DNSOrIPAddress為DNS記錄,則查詢DNS記錄對應的IP地址,解析為IPAddress:Port集合,若為IPAddress,則直接解析為IPAddress:Port,比如/$/inet/127.0.0.1/4140會被解析為127.0.0.1:4140。而io.buoyant.rinet則對形如/$/io.buoyant.rinet/Port/DNSOrIPAddress的客戶端名字進行解析。需要特別注意的是inet和io.buoyant.rinet都以/$打頭,以此區分上述namer。
除上述所列出的namer,Linkerd還提供一些工具namer,用于輔助實現dtab的復雜變換,但不用作服務發現,我們稱這些namer為rewriting namer,這包括以下工具。
io.buoyant.http.domainToPathPfx:重寫形如/$/io.buoyant.http.domainToPathPfx/
io.buoyant.http.subdomainOfPfx:重寫形如/$/io.buoyant.http.subdomainOfPfx/
io.buoyant.hostportPfx:重寫形如/$/io.buoyant.hostportPfx/
io.buoyant.porthostPfx:重寫形如/$/io.buoyant.porthostPfx/
與用于服務發現的namer不同的是rewriting namer以/$打頭,而且無需在namer配置中顯示配置即可使用。
現假如已獲得客戶端名字/#/io.l5d.consul/dc1/booking,其告之prefix為/io.l5d.consul的namer將解析該客戶端名字成Consul數據中心為dc1,服務名字為booking對應的IP地址和端口集合,如192.168.1.12:39462 192.168.1.13:42251。
虛擬化 云計算
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。