日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Istio架构概览

發布時間:2024/1/1 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Istio架构概览 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • Istio工作機制
      • 工作機制
    • 服務模型
      • 服務模型約束
      • istio服務
      • istio服務版本
      • istio服務實例
    • istio的主要組件
      • istio-pilot
      • istio-telemetry
      • istio-policy
      • istio-citadel
      • istio-galley
      • istio-sidecar-injector
      • istio-proxy
      • istio-ingressgateway
      • 其它組件
      • 博客原文

Istio工作機制

Istio主要架構分為控制面和數據面兩部分。

數據面: Envoy
控制面: Pilot、Mixer、Citadel

工作機制

  • 自動注入: k8s中,當有pod創建時候,調用sidecar-injector服務,修改程序描述信息,注入sidecar。主要就是envoy。
  • 流量攔截:在pod中用iptables攔截容器的流量
  • 服務發現: Envoy調用Pilot的服務發現接口獲取目標服務的實例列表
  • 負載均衡: 服務發起方的Envoy根據負載均衡策略選擇服務實例
  • 流量治理: Envoy從Pilot獲取流量規則,將流量轉發到對應的服務上。
  • 訪問安全: Envoy之間的通訊進行雙向認證和通道加密,并基于服務的身份授權管理。其中證書和密鑰主要由Citadel組件維護
  • 服務遙測: 服務通訊期間,雙方的Envoy都會向Mixer組件上報訪問數據。
  • 策略執行: 可以用Mixer控制服務間的訪問
  • 外部訪問: 在網格的入口有一個Envoy扮演入口網關的角色。
  • 服務模型

    由istio服務、服務版本、服務實例幾個對象構成

    服務模型約束

    • 端口命名: name: <protocol>[-<suffix>],協議支持常用的服務協議,如mysql、redis,如無指定,默認為tcp協議
    • 服務關聯: pod需要關聯到服務
    • deployment使用app和version標簽: 區分版本

    istio服務

    k8s只要滿足上文提到的服務模型約束,就可以轉為 istio 的服務并配置規則進行流量治理。如最小的k8s模型加上端口命名

    k8s主體是 workload,istio 的對象主體是 service,沒有訪問方式的workload 不是 istio 治理對象。Kubernetes 的 Service 定義 就是 Istio 服務 的 元 數據。

    istio服務版本

    通過deployment的app: service-name 來關聯服務。 通過version: v<version> 標簽來區分服務不同版本。 可以根據這個實現灰度發布等功能。

    istio服務實例

    Istio 的 ServiceInstance 主要包括 Endpoint、 Service、 Labels、 AvailabilityZone 和 ServiceAccount 等屬性, Endpoint 是其中最主要 的屬性,表示這個實例對應的網絡后端( ip: port), Service 表示這個服務 實例歸屬的服務。

    istio的主要組件

    kubectl get svc -n istio-system 可以查看完整組件列表

    istio-pilot

    pilot領航員的意思,顧名思義,是istio的控制中樞,向數據平面下發規則。

    包括 VirtualService、DestinationRule、Gateway、ServiceEntry等一系列的流量治理規則。將規則轉換成Envoy規則,通過xDS協議發送給Envoy。Envoy平時通過gRPC流式訂閱Pilot的配置資源。

    istio-telemetry

    Mixer服務組件之一,專門收集遙測數據。服務間交互時,兩邊的Envoy均會將遙測數據上報給該組件。

    istio-policy

    Mixer服務組件之一,機制和流程同telemetry。 作用主要是服務間調用時,兩邊Envoy均會請求istio-policy來檢查接口是否允許訪問。

    istio-citadel

    citadel是城堡,象征著安全。是istio平時容易忽視但是又很重要的組件。負責自動生成、分發、輪換、撤銷密鑰和證書。它會監聽apiserver,以secret形式為每個服務生成證書,并在pod創建時掛載到創建的pod上??梢越㈦p向TLS通道。

    istio-galley

    galley是戰艦。負責配置管理,驗證配置信息格式和正確性。并提供這些配置給Pilot和Mixer使用。

    istio-sidecar-injector

    負責注入組件。只要開啟了自動注入。它會監聽apiserver,當有Pod創建的時候,講sidecar容器 istio-proxy(Envoy)注入到原來Pod中,并修改iptables來將請求都經過Envoy。

    istio-proxy

    istio中的輕量數據代理,默認是用Envoy實現。istio-proxy容器中除了有Envoy,還有pilot-agent的守護進程。

    istio-ingressgateway

    入口網關。外部訪問內部服務都經過它。是一個LoadBalance類型的Service

    其它組件

    除了以“ istio” 為前綴的以上幾個 Istio 自有的組件,在集群中一般還安裝 Jaeger- agent、 Jaeger- collector、 Jaeger- query、 Kiali、 Prometheus、 Tracing、Zipkin 組件,這些組件提供了 Istio 的調用鏈、 監控等功能,可以選擇安裝來完成完整的服務監控管理功能。

    博客原文

    • Istio架構概覽

    總結

    以上是生活随笔為你收集整理的Istio架构概览的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。