《實戰 Istio入門與實戰

      網友投稿 771 2025-04-01

      實戰

      Istio入門與實戰

      毛廣獻 編著

      Preface

      前  言

      近幾年來,容器技術的飛速發展使得微服務技術更容易落地,微服務架構在業界逐漸流行起來。但是微服務架構基礎設施要求較高,微服務依賴持續集成、服務注冊、服務發現、負載均衡、健康檢測、配置管理、服務路由、服務容錯、日志收集、指標收集、調用鏈追蹤等,而構建這一套基礎設施的成本巨大。因此,微服務相關的框架逐漸露出水面,比如Java語言的Spring Cloud框架。雖然這些微服務框架為我們提供了很多便利,但由于這些框架是與編程語言綁定的,使得我們應用的技術棧受到了限制。即使后來有其他的微服務框架也支持多編程語言的技術棧,但由于這些微服務框架代碼對服務代碼入侵嚴重,給后續服務框架的bug修復和版本升級帶來了一定的困難。所以,服務網格的概念一經提出,便得到了很多人的支持,人們對這項技術抱有很大的期望,希望能解決當前微服務所遇到的問題。

      當我第一次接觸服務網格技術的時候,就覺得服務網格將來可能會像IaaS、PaaS一樣成為業界的主流技術,會得到廣泛應用。其實,服務網格并沒有提供什么新的概念和功能,它只是把原來服務框架所做的功能完全獨立出來,整合了一個服務網格的基礎設施層。這個改變看似很小,但是能使服務與服務治理功能實現完全解耦,這個影響是巨大的。

      2017年5月,谷歌、IBM、Lyft等公司共同努力實現的開源服務網格Istio正式發布了第一個版本。而后又一個服務網格開源實現Conduit開始啟航,服務網格進入了更多技術人員的視野,經過努力,Istio在2018年7月正式發布了1.0.0版本。

      2018年是服務網格快速發展的一年,Istio發布的1.0.0版本標志著Istio已經成熟到可以接受生產流量的考驗。2019年服務網格將會持續保持熱度,作為一名技術人員,現在是時候了解一下服務網格技術了。而在所有的開源服務網格實現中,最成熟的肯定是Istio。因此,要學習和了解服務網格,首先應該學習使用Istio。

      由于Istio官方文檔使用英文編寫,而且只簡單演示了Istio提供的功能,沒有基于一般的使用場景,我在學習Istio時就很迷茫。于是,我結合自己的學習經驗和方法編寫了這本如何在實戰中學習Istio的書,以便技術人員能以最簡單的方式上手Istio,理解Istio,并能在生產環境中應用Istio服務網格。

      由于本書是一本實戰類型的書,書中沒有大篇的理論知識。對于Istio提供的功能,本書只簡單地描述其作用和使用方式,然后使用實驗來演示效果。我相信,只要你跟著書中的實驗操作,并理解這些實驗的目的,學習完本書后,你就一定能熟練使用Istio,并在以后的Istio使用中得心應手。

      對服務網格感興趣的人都可以閱讀本書。如果你想了解服務網格,想知道服務網格提供了哪些功能,能解決什么問題,本書將是一個不錯的選擇。如果你想了解Istio,體驗Istio,將來有可能將Istio應用于生產環境,那么閱讀本書將是一個不錯的開始。

      本書主要內容如下:

      第1章介紹服務網格的由來以及服務網格能給我們帶來什么,接著介紹開源的服務網格實現Istio的主要功能特性及其架構設計。

      第2章說明本書后續實驗相關的環境和實驗中的注意事項,并詳細介紹后續實驗中將會使用的微服務架構應用,以及微服務的容器化構建。

      第3章簡單介紹Vagrant及其使用方法。使用Vagrant可以快速創建實驗環境,這對于我們后續實驗環境的準備提供了非常大的便利,接著對創建實驗環境的場景進行模擬,幫助讀者熟悉Vagrant的使用流程。

      第4章介紹如何使用Kubeadm快速創建一個多節點的Kubernetes集群。Kubernetes集群是后續部署Istio的基礎。

      第5章介紹如何以官方示例的方式部署一個包含完整功能的Istio集群,以及如何以最小資源的方式部署一個能滿足大部分實驗場景要求的Istio集群。此外,還簡單介紹了Istio中常用的資源,以及常用的istioctl、kubectl命令。

      第6章介紹微服務架構應用如何部署在Kubernetes集群中,以及如何訪問部署在Kubernetes集群中的服務,還簡單介紹了如何在Istio集群中部署和對外暴露服務。

      第7章介紹Istio提供的服務流量管理功能,包括管理網格的入口和出口流量,根據請求進行流量拆分,如何借助Istio實現A/B測試和灰度發布等功能。

      第8章介紹如何讓部署在Istio中的服務更具彈性,包括負載均衡、連接池、服務健康檢測、服務熔斷、服務超時、服務重試、服務限流功能的配置。

      第9章介紹服務故障注入的相關功能,提前給服務注入故障,可以測試服務在故障中的穩定性,提前發現問題并修復問題。

      第10章介紹服務間通信加密和服務間訪問權限的控制。Istio提供了雙向TLS進行服務間的通信加密,使用RBAC來實現細粒度的服務訪問權限控制。

      第11章介紹如何提升服務的可觀測性。在Istio中通過簡單的配置,就可以實現服務的指標收集、日志收集。通過傳遞指定的服務請求頭,就可以輕松實現服務的調用鏈追蹤功能,這不但增強了服務的可觀測性,還大大減輕了運維人員和開發人員的負擔。

      第12章介紹Istio部署后的維護工作。通過部署開源的第三方儀表板工具,我們可以更方便地管理Istio。接著介紹如何在不停機的情況下升級Istio,如何使用Helm以定制化的方式部署Istio,以及當Istio出現故障時應該如何排查并解決問題。最后介紹了在Istio中一個請求從發出到響應的整個流程。

      第13章介紹一些不適合放在其他章節的Istio功能,包括跨域、跳轉、TCP路由、TLS路由等,以及如何在Gateway上啟用HTTPS,如何為部署在Istio中的服務開啟健康檢查功能,如何使用Envoy代理Ingressgateway來實現把集群內的服務暴露給集群外部使用。最后還簡單介紹了Mixer和Adapter模型。

      本書源碼

      本書所有示例代碼都放在GitHub上,地址為https://github.com/mgxian/istio-lab,讀者可以查看或下載。由于部署Kubernetes集群和Istio的過程中會涉及比較多的命令,我也把相關的命令放在了源碼的cmd目錄下。

      致謝

      感謝所有在本書撰寫、出版過程中給予過幫助的人。這里要特別感謝機械工業出版社的吳怡編輯,沒有她的鼎力相助,就沒有本書。同時也要感謝我的家人和朋友,沒有他們的支持和理解,我不可能在有限的時間里完成本書。最后要感謝閱讀本書的讀者,非常感謝大家的支持!

      Contents

      目  錄

      前言

      第1章 服務網格與Istio? 1

      1.1 服務網格簡介? 1

      1.1.1 服務網格的概念與特點? 2

      1.1.2 服務網格的優勢? 3

      1.2 Istio簡介? 4

      1.3 Istio的架構設計? 5

      1.3.1 數據平面? 6

      1.3.2 控制平面? 7

      1.4 Istio的功能特性? 9

      1.5 本章小結? 10

      第2章 實驗說明? 11

      2.1 實驗的環境? 11

      2.1.1 基礎環境? 11

      2.1.2 命令說明? 12

      2.1.3 問題及解決方案? 13

      2.2 實驗的應用? 16

      2.2.1 應用架構說明? 16

      2.2.2 應用詳細說明? 17

      《實戰 Istio入門與實戰》

      2.3 應用的構建? 26

      2.4 本章小結? 31

      第3章 使用Vagrant管理虛擬機? 32

      3.1 Vagrant簡介? 32

      3.2 Vagrant常用命令? 33

      3.3 模擬實驗時的場景? 38

      3.4 本章小結? 47

      第4章 創建Kubernetes集群? 48

      4.1 安裝Docker? 48

      4.2 安裝Kubeadm? 51

      4.3 配置基礎環境? 52

      4.4 創建Kubernetes集群的步驟? 55

      4.5 測試集群的正確性? 61

      4.6 注意事項與技巧? 65

      4.7 本章小結? 67

      第5章 Istio部署與常用命令? 68

      5.1 部署Istio? 68

      5.2 常用資源類型? 77

      5.2.1 流量控制? 77

      5.2.2 請求配額? 80

      5.2.3 mTLS認證策略? 81

      5.2.4 RBAC訪問權限? 81

      5.3 常用的kubectl命令? 83

      5.4 常用的istioctl命令? 83

      5.4.1 通用參數說明? 84

      5.4.2 常用命令? 84

      5.5 注意事項與技巧? 85

      5.6 本章小結? 89

      第6章 微服務應用的部署? 90

      6.1 微服務應用架構? 90

      6.2 部署服務? 94

      6.3 訪問服務? 98

      6.4 在Istio中部署微服務? 102

      6.5 本章小結? 105

      第7章 讓服務流量控制更簡單? 106

      7.1 整體介紹? 106

      7.2 管理集群的入口流量? 110

      7.3 把請求路由到服務的指定版本? 111

      7.4 根據服務版本權重拆分流量? 113

      7.5 根據請求信息路由到服務的不同版本? 114

      7.6 流量鏡像? 115

      7.7 管理集群的出口流量? 117

      7.8 實現服務A/B測試? 126

      7.9 實現服務灰度發布? 128

      7.10 灰度發布與A/B測試結合? 132

      7.11 本章小結? 135

      第8章 讓服務更具彈性? 136

      8.1 整體介紹? 136

      8.2 負載均衡? 138

      8.3 連接池? 141

      8.4 健康檢測? 144

      8.5 熔斷? 145

      8.6 超時? 149

      8.7 重試? 151

      8.8 限流? 153

      8.9 本章小結? 165

      第9章 讓服務故障檢測更容易? 166

      9.1 整體介紹? 166

      9.2 給服務增加時延? 168

      9.3 給服務注入錯誤? 169

      9.4 時延與錯誤配合使用? 171

      9.5 本章小結? 173

      第10章 讓服務通信更安全可控? 174

      10.1 整體介紹? 174

      10.2 Denier適配器? 176

      10.3 黑白名單? 177

      10.4 服務與身份認證? 180

      10.5 RBAC訪問控制? 194

      10.6 本章小結? 205

      第11章 讓服務更易觀測與監控? 206

      11.1 整體介紹? 206

      11.2 指標收集? 209

      11.3 日志收集? 216

      11.4 調用鏈追蹤? 224

      11.5 服務指標可視化? 230

      11.6 服務調用樹? 235

      11.7 本章小結? 239

      第12章 Istio維護? 240

      12.1 整體介紹? 240

      12.2 Istio服務網格儀表板? 241

      12.3 升級Istio? 245

      12.4 使用Helm定制部署Istio? 253

      12.5 故障排除? 257

      12.6 一個請求的完整過程分析? 272

      12.7 本章小結? 282

      第13章 雜項? 283

      13.1 CORS? 284

      13.2 URL重定向? 287

      13.3 URL重寫? 289

      13.4 TCP路由? 290

      13.5 TLS路由? 292

      13.6 mTLS遷移? 295

      13.7 EnvoyFilter? 297

      13.8 添加請求頭? 299

      13.9 在Gateway上使用HTTPS? 300

      13.10 在HTTPS服務上開啟mTLS? 304

      13.11 網格中的服務健康檢查? 306

      13.12 Envoy代理Ingressgateway? 308

      13.13 Mixer與Adapter模型? 311

      13.14 本章小結? 312

      微服務 Istio 容器 Kubernetes

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:閃退怎么辦,很頻繁(經常閃退怎么回事)
      下一篇:包含什么是生產管理系統的詞條
      相關文章
      国产精品国产亚洲区艳妇糸列短篇 | 亚洲AV永久无码精品成人| 亚洲熟妇无码AV不卡在线播放| 无码久久精品国产亚洲Av影片| 久久精品九九亚洲精品天堂| 国产亚洲精品a在线观看app| 亚洲AV永久无码精品成人| 国产中文在线亚洲精品官网| 亚洲色图综合在线| 亚洲性日韩精品国产一区二区| 中文字幕亚洲专区| 亚洲综合无码AV一区二区| 亚洲精品无码久久久久去q| 亚洲日本va在线视频观看| 亚洲精品无码MV在线观看 | 亚洲已满18点击进入在线观看| 亚洲一区在线免费观看| 亚洲日韩乱码中文无码蜜桃臀| 91亚洲国产成人久久精品网站| 色播亚洲视频在线观看| 亚洲成a人片毛片在线| 亚洲国产成人久久综合一区| 亚洲国产日韩在线成人蜜芽| 中文字幕乱码亚洲无线三区 | 久久亚洲综合色一区二区三区| 亚洲日韩激情无码一区| 久久精品亚洲福利| 日本亚洲成高清一区二区三区| 亚洲人成网址在线观看 | 亚洲黄色片免费看| 久久精品国产亚洲AV无码娇色| 4480yy私人影院亚洲| 精品久久久久久亚洲精品| 亚洲国产精品网站在线播放 | 亚洲福利一区二区三区| 亚洲资源在线观看| 亚洲黄页网在线观看| 精品亚洲国产成人av| 中文字幕久久亚洲一区| 亚洲av午夜成人片精品网站 | 亚洲一级视频在线观看|