Istio實戰教程:Service Mesh部署與流量管理

引言

Istio是一個開源的服務網格,它提供了一種統一的方法來連接、保護、控制和觀察服務。本教程將指導你從零開始部署Istio,并展示如何使用Istio進行基本的流量管理。

環境準備

  • Kubernetes集群:Istio運行在Kubernetes之上,確保你有一個可用的Kubernetes集群。
  • Helm:用于安裝Istio的包管理器。
  • kubectl:Kubernetes命令行工具。

安裝Istio

  1. 安裝Helm:如果尚未安裝Helm,可以通過以下命令安裝:
    curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
  2. 添加Istio Helm倉庫
    helm repo add istio.io https://istio.io Helm helm repo update

  3. 安裝Istio
    • 首先,創建一個名為istio-system的namespace:
       

      shell

      kubectl create namespace istio-system

    • 使用Helm安裝Istio:
       
      helm install istio-base istio.io/istio-base -n istio-system helm install istiod istio.io/istiod -n istio-system

部署示例應用

  1. 部署Bookinfo應用:這是一個Istio提供的示例應用,用于演示Istio的功能。
    kubectl apply -f https://raw.githubusercontent.com/istio/istio/master/samples/bookinfo/platform/kube/bookinfo.yaml

  2. 確認應用部署
    kubectl get services

啟用Istio Sidecar

  1. 為Bookinfo應用啟用Istio Sidecar
     
    kubectl label namespace default istio-injection=enabled

  2. 重新部署應用以應用Sidecar注入:
     

    kubectl delete pods --all

流量管理

  1. 定義路由規則
    • 創建一個簡單的路由規則,將所有流量發送到reviews服務的v1版本:
       
      apiVersion: networking.istio.io/v1alpha3
      kind: VirtualService
      metadata:name: reviews
      spec:hosts:- reviewshttp:- route:- destination:host: reviewssubset: v2fault:delay:percentage: 100fixedDelay: 7s

    • 應用規則:
      kubectl apply -f reviews-virtualservice.yaml

  2. 測試路由規則:多次刷新Bookinfo應用的頁面,查看是否總是顯示相同的評論。

故障注入和流量鏡像

  1. 故障注入:模擬reviews服務v2版本的故障。
     
    apiVersion: networking.istio.io/v1alpha3
    kind: VirtualService
    metadata:name: reviews
    spec:hosts:- reviewshttp:- route:- destination:host: reviewssubset: v2fault:delay:percentage: 100fixedDelay: 7s

  2. 流量鏡像:將reviews服務v1版本的10%流量復制到v2版本。
     
    apiVersion: networking.istio.io/v1alpha3
    kind: DestinationRule
    metadata:name: reviews
    spec:host: reviewssubsets:- name: v1labels:version: v1- name: v2labels:version: v2trafficPolicy:connectionPool:http:http1MaxPendingRequests: 1maxRequestsPerConnection: 1trafficPolicy:mirror:- percentage: 10destination:host: reviewssubset: v2

清理

  1. 刪除Istio
     
    helm delete istiod -n istio-system helm delete istio-base -n istio-system

  2. 刪除Bookinfo應用
     
    kubectl delete -f https://raw.githubusercontent.com/istio/istio/master/samples/bookinfo/platform/kube/bookinfo.yaml

結語

通過本教程,你已經學會了如何在Kubernetes集群上安裝Istio,部署示例應用,并使用Istio進行基本的流量管理操作。Istio的強大功能遠不止于此,你可以繼續探索更高級的特性,如安全策略、服務認證和授權等。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42767.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42767.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42767.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

W25Q64 Flash存儲器與STM32:硬件與軟件的完美結合案例

摘要 在嵌入式系統中,數據存儲是關鍵組成部分之一。W25Q64 Flash存儲器因其高容量、低功耗和高可靠性,成為STM32微控制器項目中優選的存儲解決方案。本文將展示W25Q64與STM32微控制器集成的案例,包括硬件設計、SPI通信協議實現和軟件編程策略…

記錄在Windows上安裝Docker

在Windows上安裝Docker時,可以選擇使用不同的后端。 其中兩個常見的選擇是:WSL 2(Windows Subsystem for Linux 2)和 Hyper-V 后端。此外,還可以選擇使用Windows容器。 三者的區別了解即可,推薦用WSL 2&…

我們公司落地大模型的路徑、方法和坑

我們公司落地大模型的路徑、方法和坑 李木子 AI大模型實驗室 2024年07月02日 18:35 北京 最近一年,LLM(大型語言模型)已經成熟到可以投入實際應用中了。預計到 2025 年,AI 領域的投資會飆升到 2000 億美元。現在,不只…

Thinking--在應用中添加動態水印,且不可刪除

Thinking系列,旨在利用10分鐘的時間傳達一種可落地的編程思想。 水印是一種用于保護版權和識別內容的技術,通常用于圖像、視頻或文檔中。它可以是文本、圖像或兩者的組合,通常半透明或以某種方式嵌入到內容中,使其不易被移除或篡改…

【Linux】多線程_2

文章目錄 九、多線程2. 線程的控制 未完待續 九、多線程 2. 線程的控制 主線程退出 等同于 進程退出 等同于 所有線程都退出。為了避免主線程退出,但是新線程并沒有執行完自己的任務的問題,主線程同樣要跟進程一樣等待新線程返回。 pthread_join 函數…

【代碼隨想錄_Day28】62. 不同路徑 63. 不同路徑 II

Day28 OK,今日份的打卡!第二十八天 以下是今日份的總結不同路徑不同路徑 II 以下是今日份的總結 62 不同路徑 63 不同路徑 II 今天的題目難度不低,盡量還是寫一些簡潔代碼 ^?_?^ 不同路徑 思路: 1.確定dp數組(dp…

算法學習筆記(8.2)-動態規劃入門進階

目錄 問題判斷: 問題求解步驟: 圖例: 解析: 方法一:暴力搜索 實現代碼如下所示: 解析: 方法二:記憶化搜索 代碼示例: 解析: 方法三:動態規劃 空間…

每日復盤-20240709

今日關注: 20240709 六日漲幅最大: ------1--------300391--------- 長藥控股 五日漲幅最大: ------1--------300391--------- 長藥控股 四日漲幅最大: ------1--------603155--------- 新亞強 三日漲幅最大: ------1--------301300--------- 遠翔新材 二日漲幅最大: ------1-…

基于antdesign封裝一個react的上傳組件

項目中遇到了一個上傳的需求,看了一下已有的代碼很粗糙,而且是直接引用andt的組件,體驗不太好,自己使用FormData對象封裝了一個上傳組件,僅供參考。 代碼如下: /*** FileUploadModal* description - 文件選…

Qt入門(二):Qt的基本組件

目錄 Designer程序面板 1、布局Layout 打破布局 貼合窗口 2、QWidget的屬性 3、Qlabel標簽 顯示圖片 4、QAbstractButton 按鈕類 按鈕組 5、QLineEdit 單行文本輸入框 6、ComboBox 組合框 7、若干與數字相關的組件 Designer程序面板 Qt包含了一個Designer程序 &…

Qt編程技巧總結篇(3)-信號-槽-多線程(二)

文章目錄 Qt編程技巧總結篇(3)-信號-槽-多線程(二)主進程與子線程線程同步實例與應用 小結 Qt編程技巧總結篇(3)-信號-槽-多線程(二) 多線程學習,使用QMutex,…

RTK_ROS_導航(3):點云的壓縮,PointCloud轉scan

目錄 1. 源碼的安裝2. 修改訂閱的話題3. 可視化1. 源碼的安裝 安裝過程如下 mkdir -p point_to_scan_ws/src cd point_to_scan_ws/src git clone https://github.com/BluewhaleRobot/pointcloud_to_laserscan.git cd .. catkin_make source devel/setup.bash2. 修改訂閱的話題 …

2024.07.01校招 實習 內推 面經

綠*泡*泡VX: neituijunsir 交流*裙 ,內推/實習/校招匯總表格 1、校招 | 元戎啟行2025校園招聘正式批正式啟動(內推) 校招 | 元戎啟行2025校園招聘正式批正式啟動(內推) 2、提前批 | 多益網絡2025屆校園…

基于抽象 HandlerInterceptor 快速實現接口鑒權

歡迎關注公眾號:冬瓜白 相關文章: 每天學習一點點之 Spring Web MVC 之抽象 HandlerInterceptor 快速實現常用功能(限流、權限等) 在[每天學習一點點之 Spring Web MVC 之抽象 HandlerInterceptor 快速實現常用功能&#xff08…

Numpy的廣播機制(用于自動處理不同形狀的數組)

NumPy 廣播是一種強大的機制,允許 NumPy 在執行元素級運算時自動處理不同形狀的數組。廣播的規則使得無需顯式地創建匹配形狀的數組,直接進行運算,大大簡化了代碼并提高了效率。 基本概念 廣播的基本思想是讓較小的數組在需要的維度上進行擴…

【MySQL數據庫之概念性問題】

1、關系型數據庫和非關系型數據庫 關系型數據庫(Relational Database,簡稱RDBMS)和非關系型數據庫(NoSQL Database)是兩種不同的數據庫類型。SQL本身叫做結構化查詢語言1、關系型數據庫:(MySQL…

Django 更新數據 save()方法

1,添加模型 Test/app11/models.py from django.db import modelsclass Post(models.Model):title models.CharField(max_length200)content models.TextField()pub_date models.DateTimeField(date published)class Book(models.Model):title models.CharFie…

Spring Boot集成grpc快速入門demo

1.什么是GRPC? gRPC 是一個高性能、開源、通用的RPC框架,由Google推出,基于HTTP2協議標準設計開發,默認采用Protocol Buffers數據序列化協議,支持多種開發語言。gRPC提供了一種簡單的方法來精確的定義服務&#xff0c…

UE5.3-基礎藍圖類整理一

常用藍圖類整理: 1、獲取當前關卡名:Get Current LevelName 2、通過關卡名打開關卡:Open Level(by name) 3、碰撞檢測事件:Event ActorBeginOverlap 4、獲取當前player:Get Player Pawn 5、判斷是否相等&#xff1…

深入解析CSS中的!important規則:優先級與最佳實踐

先上實踐,再討論設計 在實際工程中,!important 的使用場景通常出現在需要確保某個樣式規則具有最高優先級,以覆蓋其他可能沖突的樣式規則時。以下是一個具體的例子: 場景描述 假設你正在開發一個網站,該網站使用了多…