国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

K8S之istio流量控制管理(十七)

這篇具有很好參考價值的文章主要介紹了K8S之istio流量控制管理(十七)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一,istio介紹
1、istio架構
?

K8S之istio流量控制管理(十七)

結合上圖我們來理解Istio的各組件的功能及相互之間的協(xié)作方式。

1. 自動注入:在創(chuàng)建應用程序時自動注入 Sidecar代理Envoy程序。在 Kubernetes中創(chuàng)建 Pod時,Kube-apiserver調用控制面組件的 Sidecar-Injector服務,自動修改應用程序的描述信息并注入Sidecar。在 真正創(chuàng)建Pod時,在創(chuàng)建業(yè)務容器的Pod中同時創(chuàng)建Sidecar容器。
2. 流量攔截:在 Pod 初始化時設置 iptables 規(guī)則,基于配置的iptables規(guī)則攔截業(yè)務容器的Inbound流量和Outbound流量到Sidecar上。而應用程序感知不到Sidecar的存在,還以原本的方式 進行互相訪問。上圖中,流出frontend服務的流量會被 frontend服務側的 Envoy攔截,而當流量到達forecast容器時,Inbound流量被forecast 服務側的Envoy攔截。
3. 服務發(fā)現(xiàn):服務發(fā)起方的 Envoy 調用控制面組件 Pilot 的服務發(fā)現(xiàn)接口獲取目標服務的實例列表。上圖中,frontend 服務側的 Envoy 通過 Pilot 的服務發(fā)現(xiàn)接口得到forecast服務各個實例的地址。
4. 負載均衡:服務發(fā)起方的Envoy根據配置的負載均衡策略選擇服務實例,并連接對應的實例地址。上圖中,數(shù)據面的各個Envoy從Pilot中獲取forecast服務的負載均衡配置,并執(zhí)行負載均衡動作。
5. 流量治理:Envoy 從 Pilot 中獲取配置的流量規(guī)則,在攔截到 Inbound 流量和Outbound 流量時執(zhí)行治理邏輯。上圖中, frontend 服務側的 Envoy 從 Pilot 中獲取流量治理規(guī)則,并根據該流量治理規(guī)則將不同特征的流量分發(fā)到forecast服務的v1或v2版本。
6. 訪問安全:在服務間訪問時通過雙方的Envoy進行雙向認證和通道加密,并基于服務的身份進行授權管理。上圖中,Pilot下發(fā)安全相關配置,在frontend服務和forecast服務的Envoy上自動加載證書和密鑰來實現(xiàn)雙向認證,其中的證書和密鑰由另一個管理面組件 Citadel維護。
7. 服務監(jiān)測:在服務間通信時,通信雙方的Envoy都會連接管理面組件Mixer上報訪問數(shù)據,并通過Mixer將數(shù)據轉發(fā)給對應的監(jiān)控后端。上圖中,frontend服務對forecast服務的訪問監(jiān)控指標、日志和調用鏈都可以通過這種方式收集到對應的監(jiān)控后端。
8. 策略執(zhí)行:在進行服務訪問時,通過Mixer連接后端服務來控制服務間的訪問,判斷對訪問是放行還是拒絕。上圖中,Mixer 后端可以對接一個限流服務對從frontend服務到forecast服務的訪問進行速率控制等操作。
9. 外部訪問:在網格的入口處有一個Envoy扮演入口網關的角 色。上圖中,外部服務通過Gateway訪問入口服務 frontend,對 frontend服務的負載均衡和一些流量治理策略都在這個Gateway上執(zhí)行。

實際上Istio 就是 Service Mesh 架構的一種實現(xiàn),服務之間的通信(比如這里的 Service A 訪問 Service B)會通過代理(默認是 Envoy)來進行。

而且中間的網絡協(xié)議支持 HTTP/1.1,HTTP/2,gRPC 或者 TCP,可以說覆蓋了主流的通信協(xié)議。代理這一層,稱之為數(shù)據平面。

控制平面做了進一步的細分,分成了 Pilot、Citadel 和 Galley,它們的各自功能如下:

Pilot:為 Envoy 提供了服務發(fā)現(xiàn),流量管理和智能路由(AB 測試、金絲雀發(fā)布等),以及錯誤處理(超時、重試、熔斷)功能。
Citadel:為服務之間提供認證和證書管理,可以讓服務自動升級成 TLS 協(xié)議。
Galley:Galley 是 Istio 的配置驗證、提取、處理和分發(fā)組件。它負責將其余的 Istio 組件與從底層平臺(例如 Kubernetes)獲取用戶配置的細節(jié)隔離開來。
數(shù)據平面會和控制平面通信,一方面可以獲取需要的服務之間的信息,另一方面也可以匯報服務調用的 Metrics 數(shù)據。

2、為什么使用 Istio?
通過負載均衡、服務間的身份驗證、監(jiān)控等方法,Istio 可以輕松地創(chuàng)建一個已經部署了服務的網絡,而服務的代碼只需很少更改甚至無需更改。通過在整個環(huán)境中部署一個特殊的 sidecar 代理為服務添加 Istio 的支持,而代理會攔截微服務之間的所有網絡通信,然后使用其控制平面的功能來配置和管理 Istio,這包括:

為 HTTP、gRPC、WebSocket 和 TCP 流量自動負載均衡。

通過豐富的路由規(guī)則、重試、故障轉移和故障注入對流量行為進行細粒度控制。

可插拔的策略層和配置 API,支持訪問控制、速率限制和配額。

集群內(包括集群的入口和出口)所有流量的自動化度量、日志記錄和追蹤。

在具有強大的基于身份驗證和授權的集群中實現(xiàn)安全的服務間通信。

Istio 為可擴展性而設計,可以滿足不同的部署需求。

3、核心特性
Istio 以統(tǒng)一的方式提供了許多跨服務網絡的關鍵功能。

3.1、流量管理
Istio 簡單的規(guī)則配置和流量路由允許您控制服務之間的流量和 API 調用過程。

Istio 簡化了服務級屬性(如熔斷器、超時和重試)的配置,并且讓它輕而易舉的執(zhí)行重要的任務(如 A/B 測試、金絲雀發(fā)布和按流量百分比劃分的分階段發(fā)布)。

有了更好的對流量的可視性和開箱即用的故障恢復特性,就可以在問題產生之前捕獲它們,無論面對什么情況都可以使調用更可靠,網絡更健壯。

3.2、安全
Istio 的安全特性解放了開發(fā)人員,使其只需要專注于應用程序級別的安全。

Istio 提供了底層的安全通信通道,并為大規(guī)模的服務通信管理認證、授權和加密。有了 Istio,服務通信在默認情況下就是受保護的,可以讓您在跨不同協(xié)議和運行時的情況下實施一致的策略——而所有這些都只需要很少甚至不需要修改應用程序。

Istio 是獨立于平臺的,可以與 Kubernetes(或基礎設施)的網絡策略一起使用。但它更強大,能夠在網絡和應用層面保護pod到 pod 或者服務到服務之間的通信。

3.3、可觀察性
Istio 健壯的追蹤、監(jiān)控和日志特性讓您能夠深入的了解服務網格部署。

通過 Istio 的監(jiān)控能力,可以真正的了解到服務的性能是如何影響上游和下游的;而它的定制 Dashboard 提供了對所有服務性能的可視化能力,并讓您看到它如何影響其他進程。

Istio 的 Mixer 組件負責策略控制和遙測數(shù)據收集。它提供了后端抽象和中介,將一部分 Istio 與后端的基礎設施實現(xiàn)細節(jié)隔離開來,并為運維人員提供了對網格與后端基礎實施之間交互的細粒度控制。

所有這些特性都使您能夠更有效地設置、監(jiān)控和加強服務的 SLO。當然,底線是您可以快速有效地檢測到并修復出現(xiàn)的問題。

4、平臺支持
Istio 獨立于平臺,被設計為可以在各種環(huán)境中運行,包括跨云、內部環(huán)境、Kubernetes、Mesos 等等。您可以在 Kubernetes 或是裝有 Consul 的 Nomad 環(huán)境上部署 Istio。Istio 目前支持:

Kubernetes 上的服務部署

基于 Consul 的服務注冊

服務運行在獨立的虛擬機上

二,Istio的流量管理介紹
Virtual services(虛擬服務)

虛擬服務讓您配置如何在服務網格內將請求路由到服務,這基于 Istio 和平臺提供的基本的連通性和服務發(fā)現(xiàn)能力。每個虛擬服務包含一組路由規(guī)則,Istio 按順序評估它們,Istio 將每個給定的請求匹配到虛擬服務指定的實際目標地址。

虛擬服務配置的流量是根據http的request請求(根據路由規(guī)則匹配的port、URL、headers、end-user、exact(精確匹配))進行匹配而指向目標規(guī)則。

虛擬服務里面的路由規(guī)則按照從上往下的順序進行選擇,第一條具有最高優(yōu)先級。

Destination rules(目標規(guī)則)

與虛擬服務一起, 目標規(guī)則是 Istio 流量路由功能的關鍵部分。您可以將虛擬服務視為將流量路由給定目的地的方式,然后使用目的地規(guī)則來配置該目的地的流量會發(fā)生什么。目標規(guī)則在評估虛擬服務路由規(guī)則后應用,因此它們適用于流量的“真實”目標。

目標規(guī)則配置的流量是指向k8s集群里面的svc。

目標規(guī)則里面可以配置訪問后端svc的負載均衡策略(隨機Random、權重Weight、最小請求 Weighted least request、輪詢Round robin)進行負載。該負載均衡策略采用envoy的負載均衡策略。

Gateways(網關)

來管理網格的入站和出站流量,讓您指定要進入或離開網格的流量。網關配置應用于在網格邊緣運行的獨立 Envoy 代理,而不是與服務工作負載一起運行的 Sidecar Envoy 代理。Istio 的網關資源可以配置 4-6 層的負載均衡屬性,如對外暴露的端口、TLS 設置等。

網關一般配置的入站流量,即L7流量。

Service Entry(服務入口)

使用服務入口來添加一個入口到 Istio 內部維護的服務注冊中心。添加了服務入口后,Envoy 代理可以向服務發(fā)送流量,就好像它是網格內部的服務一樣。配置服務入口允許您管理運行在網格外的服務的流量,它包括以下幾種能力:

為外部目標 redirect 和轉發(fā)請求,例如來自 web 端的 API 調用,或者流向遺留老系統(tǒng)的服務。
為外部目標定義重試、超時和故障注入策略。
添加一個運行在虛擬機的服務來擴展您的網格。
Sidecar

Istio 讓每個 Envoy 代理都可以訪問來自和它關聯(lián)的工作負載的所有端口的請求,然后轉發(fā)到對應的工作負載。您可以使用 sidecar 配置去做下面的事情:

微調 Envoy 代理接受的端口和協(xié)議集。
限制 Envoy 代理可以訪問的服務集合。
網絡彈性和測試
超時

超時是 Envoy 代理等待來自給定服務的答復的時間量,以確保服務不會因為等待答復而無限期的掛起,并在可預測的時間范圍內調用成功或失敗。HTTP 請求的默認超時時間是 15 秒,這意味著如果服務在 15 秒內沒有響應,調用將失敗。

重試

重試設置指定如果初始調用失敗,Envoy 代理嘗試連接服務的最大次數(shù)。通過確保調用不會因為臨時過載的服務或網絡等問題而永久失敗,重試可以提高服務可用性和應用程序的性能。重試之間的間隔(25ms+)是可變的,并由 Istio 自動確定,從而防止被調用服務被請求淹沒。HTTP 請求的默認重試行為是在返回錯誤之前重試兩次。

熔斷

熔斷器是 Istio 為創(chuàng)建具有彈性的微服務應用提供的另一個有用的機制。在熔斷器中,設置一個對服務中的單個主機調用的限制,例如并發(fā)連接的數(shù)量或對該主機調用失敗的次數(shù)。一旦限制被觸發(fā),熔斷器就會“跳閘”并停止連接到該主機。使用熔斷模式可以快速失敗而不必讓客戶端嘗試連接到過載或有故障的主機。

故障注入(包含延遲、終止功能)

?Istio 的故障注入機制來為整個應用程序測試故障恢復能力。故障注入是一種將錯誤引入系統(tǒng)以確保系統(tǒng)能夠承受并從錯誤條件中恢復的測試方法。文章來源地址http://www.zghlxwxcb.cn/news/detail-486231.html

到了這里,關于K8S之istio流量控制管理(十七)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • K8S的介紹和架構

    K8S的介紹和架構

    ?僅供入門? K8S的介紹和架構 一. 什么是kubernetes 二、Kubernetes架構和組件 2.1 核心組件 2.1.1 Kubernetes Master控制組件,調度管理整個系統(tǒng)(集群),包含如下組件: a、Kubernetes API Server b、Kubernetes Scheduler c、Kubernetes Controller 2.1.2 Kubernetes Node運行節(jié)點,運行管理業(yè)務容器,包含如下

    2024年02月10日
    瀏覽(21)
  • 【云原生】k8s組件&架構介紹與K8s最新版部署

    【云原生】k8s組件&架構介紹與K8s最新版部署

    ? ? ? 個人主頁: 征服bug-CSDN博客 kubernetes專欄: kubernetes_征服bug的博客-CSDN博客? 目錄 1 集群組件 1.1 控制平面組件(Control Plane Components) 1.2 Node 組件 1.3 插件 (Addons) 2 集群架構詳細 3 集群搭建[重點] 3.1 minikube 3.2 裸機安裝 集群組件 核心概念 集群安裝 集群 cluster : 將同一個

    2024年02月14日
    瀏覽(90)
  • 【云原生 ? Kubernetes】認識 k8s、k8s 架構、核心概念點介紹

    【云原生 ? Kubernetes】認識 k8s、k8s 架構、核心概念點介紹

    目錄 一、Kubernetes 簡介 二、Kubernetes 架構 三、Kunbernetes 有哪些核心概念? 1. 集群 Cluster 2. 容器 Container 3. POD 4. 副本集 ReplicaSet 5. 服務 service 6. 發(fā)布 Deployment 7. ConfigMap/Secret 8. DaemonSet 9. 核心概念總結 Kubernetes 簡稱 k8s,是支持云原生部署的一個平臺,起源于谷歌。谷歌早在十幾

    2024年02月03日
    瀏覽(860)
  • 一、k8s詳細介紹-技術架構

    Kubernetes(K8S)是一個開源的容器編排系統(tǒng),它提供了一個可擴展的平臺,用于管理容器化應用程序和服務。Kubernetes可以幫助用戶自動化應用程序的部署、擴展和管理,從而提高應用程序的可靠性和可伸縮性。本文將詳細介紹Kubernetes的技術架構,包括Kubernetes的核心組件、Ku

    2023年04月15日
    瀏覽(26)
  • k8s 安裝istio (一)

    k8s 安裝istio (一)

    前置條件 已經完成 ?K8S安裝過程十:Kubernetes CNI插件與CoreDNS服務部署 部署 istio 服務網格與 Ingress 服務用到了 helm 與 kubectl 這兩個命令行工具,這個命令行工具依賴 ~/.kube/config 這個配置文件,目前只在 kubernetes master 節(jié)點中生成了這個文件。 以下操作在 Kubernetes Master 節(jié)點上執(zhí)

    2024年02月11日
    瀏覽(22)
  • k8s 安裝 istio(二)

    k8s 安裝 istio(二)

    部署 Jaeger 服務 kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.16/samples/addons/jaeger.yaml 創(chuàng)建? jaeger-vs.yaml ?文件 apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: ? name: jaeger-vs ? namespace: istio-system spec: ? hosts: ? - jaeger.域名.com ? gateways: ? - admin-gateway ? http: ? -

    2024年02月11日
    瀏覽(46)
  • springboot+grpc+k8s+istio環(huán)境

    2023年8月17日,本人之前使用過nacos+dubbo+springboot、eureka+feign等環(huán)境。最近學習到了istio服務網格集成到k8s也可以實現(xiàn)分布式微服務。 Kubernetes集群 istio集成到k8s jdk17 (8也ok) gPRC服務間通信 cloud-config服務是spring-cloud-config-server配置中心,用于加載遠程配置文件,該服務端口號8081

    2024年02月12日
    瀏覽(18)
  • k8s~istio的安裝與核心組件

    k8s~istio的安裝與核心組件

    在線安裝:https://istio.io/latest/docs/setup/getting-started/#download 或者直接在這里下載:https://github.com/istio/istio/releases/tag/1.20.2 查看pod 查看服務 istio-ingressgateway 是 Istio 提供的一個組件,它作為 Kubernetes 集群的入口,接收從集群外部來的流量,并根據 Istio 的路由規(guī)則將流量轉發(fā)到集

    2024年01月24日
    瀏覽(50)
  • 為什么K8s需要服務網格Istio?

    Kubernetes服務網格是一種工具,用于在平臺級別而非應用級別為應用程序注入可觀測性、可靠性和安全性功能。Kubernetes和微服務的興起推動了人們對這項技術的興趣,許多組織都采用了Kubernetes服務網格解決方案。 微服務架構高度依賴于網絡,而服務網格可以管理應用程序服務

    2024年04月13日
    瀏覽(21)
  • 體驗istio(二):kubeadm安裝k8s集群

    體驗istio(二):kubeadm安裝k8s集群

    在這一篇中我們將使用kubeadm基于ubuntu22.04部署一個控制、工作節(jié)點分離的雙節(jié)點集群用于測試,沒有高可用加入,使用kubeadm的原因首先是它支持生產級部署,穩(wěn)定性上沒問題,而這里的測試環(huán)境也沒有基礎設施自動化相關的需求。 注意,在部署k8s方面,官方文檔已經非常詳

    2024年01月23日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包