k8s微服務isito相關知識和例子

2021-09-26 18:59:07 字數 2403 閱讀 4255

流量管理

bookinfo應用部署

服務網格(service mesh)這個術語通常用於描述構成這些應用程式的微服務網路以及應用之間的互動。隨著規模和複雜性的增長,服務網格越來越難以理解和管理。它的需求包括服務發現、負載均衡、故障恢復、指標收集和監控以及通常更加複雜的運維需求,例如 a/b 測試、金絲雀發布、限流、訪問控制和端到端認證等。

istio 提供了乙個完整的解決方案,通過為整個服務網格提供行為洞察和操作控制來滿足微服務應用程式的多樣化需求。

istio 提供一種簡單的方式來為已部署的服務建立網路,該網路具有負載均衡、服務間認證、監控等功能,只需要對服務的**進行一點或不需要做任何改動。想要讓服務支援 istio,只需要在您的環境中部署乙個特殊的 sidecar **,使用 istio 控制平面功能配置和管理**,攔截微服務之間的所有網路通訊:

istio 服務網格邏輯上分為資料平面和控制平面。

pilot 負責管理通過 istio 服務網格發布的 envoy 例項的生命週期。

bookinfo 應用分為四個單獨的微服務:

reviews 微服務有 3 個版本:

把 envoy sidecar 注入到每個服務之中。部署結果如下圖所示:

請求路由,首先會把 bookinfo 應用的進入流量導向 reviews 服務的 v1 版本。接下來會把特定使用者的請求傳送給 v2 版本,其他使用者則不受影響。

故障注入,會使用 istio 測試 bookinfo 應用的彈性,具體方式就是在 reviews:v2 和 ratings 之間進行延遲注入。接下來以測試使用者的角度觀察後續行為,我們會注意到 reviews 服務的 v2 版本有乙個 bug。注意所有其他使用者都不會感知到正在進行的測試過程。

流量遷移,最後,會使用 istio 將所有使用者的流量從 reviews 的 v2 版本轉移到 v3 版本之中,以此來規避 v2 版本中 bug 造成的影響。

如何使用 istio mixer 和 istio sidecar 獲取指標和日誌,並在不同的服務間進行追蹤

收集指標:配置 mixer,收集 bookinfo 應用中所有服務的系列指標。

查詢指標:安裝 prometheus 外掛程式,用來收集指標,並在 prometheus 服務中查詢 istio 指標。

分布式追蹤:這個任務會使用 istio 來對應用中請求的流動路徑進行追蹤。終端使用者所體驗的總體延遲在服務之間是如何分布的?分布式追蹤能夠解決這一疑問,從而幫助開發人員更快的解決問題,這也是對分布式應用進行分析和排錯的有力工具。

使用 istio dashboard:安裝 grafana 外掛程式,這一外掛程式中帶有乙個預配置 dashboard,可以用來對服務網格中的流量進行監控。

筆記 k8s通訊相關

高效檢測變化,resourceversion機制 get list的resourceversion語義 watch的resourceversion語義 從文件推測,list和watch的resourceversion語義的暗示都是一樣的 如果不指定,則從etcd quorum read 的獲取最新版...

K8s部署prometheus監控K8s細節

prometheus 一些配置檔案可以再github上找到。部署 root kube prometheus manifests 目錄下所有檔案 部署 root kube prometheus manifests setup 目錄下所有檔案 要注意的是自己要建立乙個工作空間 如果報錯執行下面語句 部署...

K8S部署DNS服務

root hdss7 11 yum install y bind root hdss7 11 rpm qa bind bind 9.11.4 16.p2.el7 8.6.x86 64 13 listen on port 53 監聽本機ip 14 listen on v6 port 53 刪除,不監聽...