欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

kubernetes實踐之七十二:Istio之策略與遙測-創(chuàng)新互聯(lián)

一:Istio簡介

10年積累的做網(wǎng)站、成都做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先做網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有潮安免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

1.Istio定義

kubernetes實踐之七十二:Istio之策略與遙測

一個用來連接,管理和保護服務(wù)的開發(fā)平臺。Istio提供一種簡單的方式建立已部署服務(wù)網(wǎng)絡(luò),具備負載均衡,服務(wù)間認證和監(jiān)控等功能。

而不需要改變?nèi)魏畏?wù)代碼。想要為服務(wù)增加對Istio的支持,只需要在環(huán)境中部署一個sidecar,使用Istio控制面板功能配置和管理代理,攔截微服務(wù)之間的所有網(wǎng)絡(luò)通信。

2.為什么需要Istio

隨著微服務(wù)出現(xiàn),微服務(wù)的連接,管理和監(jiān)控成為難題。Kubernetes可以處理多個容器的工作負載,但當(dāng)涉及更復(fù)雜的需求時,需要像Istio這樣的服務(wù)網(wǎng)格。

3.Istio的主要功能

a.流量管理(Pilot): 控制服務(wù)之間的流量和API調(diào)用的流向,使得調(diào)用更靈活可靠,并使網(wǎng)絡(luò)在惡劣情況下更加健壯。

b.可觀察性: 通過集成zipkin等服務(wù),快速了解服務(wù)之間的依賴關(guān)系,以及它們之間流量的本質(zhì)和流向,從而提供快速識別問題的能力。

c.策略執(zhí)行(mixer): 將組織策略應(yīng)用于服務(wù)之間的互動,確保訪問策略得以執(zhí)行,資源在消費者之間良好分配。策略的更改是通過配置網(wǎng)格而不是修改應(yīng)用程序代碼。

d.服務(wù)身份和安全(Istio-auth): 為網(wǎng)格中的服務(wù)提供可驗證身份,并提供保護服務(wù)流量的能力,使其可以在不同可信度的網(wǎng)絡(luò)上流轉(zhuǎn)。

4.Envoy架構(gòu)

kubernetes實踐之七十二:Istio之策略與遙測

a.svcA服務(wù)作為客戶端點用服務(wù)端svcB,svcB存在有兩個版本,但是svcA并不知情

b.Envoy作為sidecar部署到各個svc到pod內(nèi),代理所有到進出流量

c.當(dāng)svcA通過svcB到域名訪問其服務(wù)時,Envoy根據(jù)Pilot配置的路由規(guī)則,將1%的流量分給了svcB的alpha版本

5.Pilot架構(gòu)

kubernetes實踐之七十二:Istio之策略與遙測

通過配置,Pilot可以使Envoy實現(xiàn):路由配置、故障注入、流量遷移、請求超時、熔斷等諸多能力。

6.Mixer架構(gòu)

kubernetes實踐之七十二:Istio之策略與遙測

Mixer主要提供三個核心功能:

前提條件檢查:發(fā)生在服務(wù)響應(yīng)請求之前,如果檢查不通過可終止響應(yīng)

配額管理:

遙測報告:可監(jiān)控服務(wù)、上報日志信息

二:Mixer詳解

1. 基礎(chǔ)設(shè)施后端:

kubernetes實踐之七十二:Istio之策略與遙測

Mixer在應(yīng)用程序代碼和基礎(chǔ)架構(gòu)后端之間提供通用中介層,

基礎(chǔ)設(shè)施后端旨在提供用于構(gòu)建服務(wù)的支持功能。它們包括訪問控制系統(tǒng),遙測捕獲系統(tǒng),配額執(zhí)行系統(tǒng),計費系統(tǒng)等等。服務(wù)傳統(tǒng)上直接與這些后端系統(tǒng)集成,創(chuàng)建硬耦合,還有沾染特定的語義和使用選項。

Istio 提供統(tǒng)一抽象,使得 Istio 可以與一組開放式基礎(chǔ)設(shè)施后端進行交互。這樣做是為了給運維提供豐富而深入的控制,同時不給服務(wù)開發(fā)人員帶來負擔(dān)。Istio 旨在改變層與層之間的邊界,以減少系統(tǒng)復(fù)雜性,消除服務(wù)代碼中的策略邏輯并將控制權(quán)交給運維

2. 屬性

屬性是描述出口入口流量的有名稱和類型的元數(shù)據(jù)片段。 

Mixer在運行時,接受一組屬性,mixer根據(jù)配置處理傳入的屬性到適當(dāng)?shù)幕A(chǔ)設(shè)置后端。

功能:

a.前期條件檢查。 發(fā)生在請求處理前 ,請求被攔截到envoy時訪問mixer。 

允許服務(wù)在響應(yīng)來自服務(wù)消費者的傳入請求之前驗證一些前提條件。前提條件可以包括服務(wù)使用者是否被正確認證,是否在服務(wù)的白名單上,是否通過ACL檢查等等。

b.配額管理。 發(fā)生在請求處理中 ,服務(wù)中需要調(diào)用后端基礎(chǔ)設(shè)施時。 

使服務(wù)能夠在分配和釋放多個維度上的配額,配額這一簡單的資源管理工具可以在服務(wù)消費者對有限資源發(fā)生爭用時,提供相對公平的(競爭手段)。頻率控制就是配額的一個實例。

c.遙測報告。發(fā)生在請求處理后 ,上報參考性數(shù)據(jù)給mixer。也因此,envoy擁有檢查pod健康能力。 

服務(wù)能夠上報日志和監(jiān)控。在未來,它還將啟用針對服務(wù)運營商以及服務(wù)消費者的跟蹤和計費流。 

遙測報告是異步形式。即緩存多條上報一次

3.適配器

kubernetes實踐之七十二:Istio之策略與遙測

Mixer 是高度模塊化和可擴展的組件。他的一個關(guān)鍵功能就是把不同后端的策略和遙測收集系統(tǒng)的細節(jié)抽象出來,使得 Istio 的其余部分對這些后端不知情。

Mixer 處理不同基礎(chǔ)設(shè)施后端的靈活性是通過使用通用插件模型實現(xiàn)的。每個插件都被稱為 Adapter,Mixer通過它們與不同的基礎(chǔ)設(shè)施后端連接,這些后端可提供核心功能,例如日志、監(jiān)控、配額、ACL 檢查等。通過配置能夠決定在運行時使用的確切的適配器套件,并且可以輕松擴展到新的或定制的基礎(chǔ)設(shè)施后端。

4.配置文件示例

a.處理器(Handler):

適配器封裝了 Mixer 和特定外部基礎(chǔ)設(shè)施后端進行交互的必要接口,例如 Prometheus 或者 Stackdriver。各種適配器都需要參數(shù)配置才能工作。例如日志適配器可能需要 IP 地址和端口來進行日志的輸出。

這里的例子配置了一個類型為 listchecker 的適配器。listchecker 適配器使用一個列表來檢查輸入。如果配置的是白名單模式且輸入值存在于列表之中,就會返回成功的結(jié)果。

apiVersion: config.istio.io/v1alpha2
kind: listcheckermetadata:
name: staticversion  
namespace: istio-systemspec:
providerUrl: http://white_list_registry/  
blacklist: false

{metadata.name}.{kind}.{metadata.namespace} 是 HANDLER 的完全限定名。上面定義的對象的 FQDN 就是 staticversion.listchecker.istio-system,他必須是唯一的。spec 中的數(shù)據(jù)結(jié)構(gòu)則依賴于對應(yīng)的適配器的要求。

有些適配器實現(xiàn)的功能就不僅僅是把 Mixer 和后端連接起來。例如 prometheus 適配器消費指標(biāo)并以可配置的方式將它們聚合成分布或計數(shù)器。

apiVersion: config.istio.io/v1alpha2
kind: prometheusmetadata:
name: handler  
namespace: istio-systemspec:
  metrics:- name: request_count  
  instance_name: requestcount.metric.istio-system  
  kind: COUNTER  
  label_names:
  - destination_service  
  - destination_version  
  - response_code- name: request_duration  
  instance_name: requestduration.metric.istio-system  
  kind: DISTRIBUTION  
  label_names:
  - destination_service  -
   destination_version  
   - response_code    
   buckets:
    explicit_buckets:
      bounds: [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10]

每個適配器都定義了自己格式的配置數(shù)據(jù)。適配器及其配置的詳盡列表可以在這里找到

b.實例(Instance):

配置實例將請求中的屬性映射成為適配器的輸入。下面的例子,是一個 metric 實例的配置,用于生成 requestduration metric。

apiVersion: config.istio.io/v1alpha2
kind: metricmetadata:
name: requestduration  
namespace: istio-systemspec:
  value: response.duration | "0ms"  dimensions:
    destination_service: destination.service | "unknown"    destination_version: destination.labels["version"] | "unknown"    
response_code: response.code | 200  
monitored_resource_type: '"UNSPECIFIED"'

c.規(guī)則(Rule):

規(guī)則用于指定使用特定實例配置調(diào)用某一 HANDLER 的時機。比如我們想要把 service1 服務(wù)中,請求頭中帶有 X-USER 的請求的 requestduration 指標(biāo)發(fā)送給 Prometheus HANDLER。

apiVersion: config.istio.io/v1alpha2
kind: rulemetadata:
  name: promhttp  
 namespace: istio-system
 spec:
  match: destination.service == "service1.ns.svc.cluster.local" && request.headers["x-user"] == "user1"  
 actions:- handler: handler.prometheus  
 instances:
  - requestduration.metric.istio-system

規(guī)則中包含有一個 MATCH 元素,用于前置檢查,如果檢查通過則會執(zhí)行動作列表。動作中包含了一個實例列表,這個列表將會分發(fā)給 HANDLER。規(guī)則必須使用 HANDLER 和實例的完全限定名。如果規(guī)則、HANDLER 以及實例全都在同一個命名空間,命名空間后綴就可以在 FQDN 中省略,例如 handler.prometheus。

文章標(biāo)題:kubernetes實踐之七十二:Istio之策略與遙測-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://chinadenli.net/article34/edipe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣網(wǎng)站改版標(biāo)簽優(yōu)化網(wǎng)站設(shè)計微信小程序關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化