Istio入門與實戰(zhàn)

      網(wǎng)友投稿 646 2025-03-31

      實戰(zhàn)

      Istio入門與實戰(zhàn)

      毛廣獻(xiàn) 編著

      Preface 前  言

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

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

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

      2018年是服務(wù)網(wǎng)格快速發(fā)展的一年,Istio發(fā)布的1.0.0版本標(biāo)志著Istio已經(jīng)成熟到可以接受生產(chǎn)流量的考驗。2019年服務(wù)網(wǎng)格將會持續(xù)保持熱度,作為一名技術(shù)人員,現(xiàn)在是時候了解一下服務(wù)網(wǎng)格技術(shù)了。而在所有的開源服務(wù)網(wǎng)格實現(xiàn)中,最成熟的肯定是Istio。因此,要學(xué)習(xí)和了解服務(wù)網(wǎng)格,首先應(yīng)該學(xué)習(xí)使用Istio。

      由于Istio官方文檔使用英文編寫,而且只簡單演示了Istio提供的功能,沒有基于一般的使用場景,我在學(xué)習(xí)Istio時就很迷茫。于是,我結(jié)合自己的學(xué)習(xí)經(jīng)驗和方法編寫了這本如何在實戰(zhàn)中學(xué)習(xí)Istio的書,以便技術(shù)人員能以最簡單的方式上手Istio,理解Istio,并能在生產(chǎn)環(huán)境中應(yīng)用Istio服務(wù)網(wǎng)格。

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

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

      本書主要內(nèi)容如下:

      第1章介紹服務(wù)網(wǎng)格的由來以及服務(wù)網(wǎng)格能給我們帶來什么,接著介紹開源的服務(wù)網(wǎng)格實現(xiàn)Istio的主要功能特性及其架構(gòu)設(shè)計。

      第2章說明本書后續(xù)實驗相關(guān)的環(huán)境和實驗中的注意事項,并詳細(xì)介紹后續(xù)實驗中將會使用的微服務(wù)架構(gòu)應(yīng)用,以及微服務(wù)的容器化構(gòu)建。

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

      第4章介紹如何使用Kubeadm快速創(chuàng)建一個多節(jié)點(diǎn)的Kubernetes集群。Kubernetes集群是后續(xù)部署Istio的基礎(chǔ)。

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

      第6章介紹微服務(wù)架構(gòu)應(yīng)用如何部署在Kubernetes集群中,以及如何訪問部署在Kubernetes集群中的服務(wù),還簡單介紹了如何在Istio集群中部署和對外暴露服務(wù)。

      第7章介紹Istio提供的服務(wù)流量管理功能,包括管理網(wǎng)格的入口和出口流量,根據(jù)請求進(jìn)行流量拆分,如何借助Istio實現(xiàn)A/B測試和灰度發(fā)布等功能。

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

      第9章介紹服務(wù)故障注入的相關(guān)功能,提前給服務(wù)注入故障,可以測試服務(wù)在故障中的穩(wěn)定性,提前發(fā)現(xiàn)問題并修復(fù)問題。

      第10章介紹服務(wù)間通信加密和服務(wù)間訪問權(quán)限的控制。Istio提供了雙向TLS進(jìn)行服務(wù)間的通信加密,使用RBAC來實現(xiàn)細(xì)粒度的服務(wù)訪問權(quán)限控制。

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

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

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

      本書源碼

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

      致謝

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

      目  錄? Contents

      前言

      第1章 服務(wù)網(wǎng)格與Istio? 1

      1.1 服務(wù)網(wǎng)格簡介? 1

      1.1.1 服務(wù)網(wǎng)格的概念與特點(diǎn)? 2

      1.1.2 服務(wù)網(wǎng)格的優(yōu)勢? 3

      1.2 Istio簡介? 4

      1.3 Istio的架構(gòu)設(shè)計? 5

      1.3.1 數(shù)據(jù)平面? 6

      1.3.2 控制平面? 7

      1.4 Istio的功能特性? 9

      1.5 本章小結(jié)? 10

      第2章 實驗說明? 11

      2.1 實驗的環(huán)境? 11

      2.1.1 基礎(chǔ)環(huán)境? 11

      2.1.2 命令說明? 12

      2.1.3 問題及解決方案? 13

      2.2 實驗的應(yīng)用? 16

      2.2.1 應(yīng)用架構(gòu)說明? 16

      2.2.2 應(yīng)用詳細(xì)說明? 17

      2.3 應(yīng)用的構(gòu)建? 26

      2.4 本章小結(jié)? 31

      第3章 使用Vagrant管理虛擬機(jī)? 32

      3.1 Vagrant簡介? 32

      3.2 Vagrant常用命令? 33

      3.3 模擬實驗時的場景? 38

      3.4 本章小結(jié)? 47

      第4章 創(chuàng)建Kubernetes集群? 48

      4.1 安裝Docker? 48

      4.2 安裝Kubeadm? 51

      4.3 配置基礎(chǔ)環(huán)境? 52

      4.4 創(chuàng)建Kubernetes集群的步驟? 55

      4.5 測試集群的正確性? 61

      4.6 注意事項與技巧? 65

      4.7 本章小結(jié)? 67

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

      5.1 部署Istio? 68

      5.2 常用資源類型? 77

      5.2.1 流量控制? 77

      5.2.2 請求配額? 80

      5.2.3 mTLS認(rèn)證策略? 81

      5.2.4 RBAC訪問權(quán)限? 81

      5.3 常用的kubectl命令? 83

      5.4 常用的istioctl命令? 83

      5.4.1 通用參數(shù)說明? 84

      5.4.2 常用命令? 84

      5.5 注意事項與技巧? 85

      5.6 本章小結(jié)? 89

      第6章 微服務(wù)應(yīng)用的部署? 90

      6.1 微服務(wù)應(yīng)用架構(gòu)? 90

      6.2 部署服務(wù)? 94

      6.3 訪問服務(wù)? 98

      6.4 在Istio中部署微服務(wù)? 102

      6.5 本章小結(jié)? 105

      第7章 讓服務(wù)流量控制更簡單? 106

      7.1 整體介紹? 106

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

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

      7.4 根據(jù)服務(wù)版本權(quán)重拆分流量? 113

      7.5 根據(jù)請求信息路由到服務(wù)的不同版本? 114

      7.6 流量鏡像? 115

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

      7.8 實現(xiàn)服務(wù)A/B測試? 126

      7.9 實現(xiàn)服務(wù)灰度發(fā)布? 128

      7.10 灰度發(fā)布與A/B測試結(jié)合? 132

      7.11 本章小結(jié)? 135

      第8章 讓服務(wù)更具彈性? 136

      8.1 整體介紹? 136

      8.2 負(fù)載均衡? 138

      8.3 連接池? 141

      8.4 健康檢測? 144

      8.5 熔斷? 145

      8.6 超時? 149

      8.7 重試? 151

      8.8 限流? 153

      《Istio入門與實戰(zhàn)》

      8.9 本章小結(jié)? 165

      第9章 讓服務(wù)故障檢測更容易? 166

      9.1 整體介紹? 166

      9.2 給服務(wù)增加時延? 168

      9.3 給服務(wù)注入錯誤? 169

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

      9.5 本章小結(jié)? 173

      第10章 讓服務(wù)通信更安全可控? 174

      10.1 整體介紹? 174

      10.2 Denier適配器? 176

      10.3 黑白名單? 177

      10.4 服務(wù)與身份認(rèn)證? 180

      10.5 RBAC訪問控制? 194

      10.6 本章小結(jié)? 205

      第11章 讓服務(wù)更易觀測與監(jiān)控? 206

      11.1 整體介紹? 206

      11.2 指標(biāo)收集? 209

      11.3 日志收集? 216

      11.4 調(diào)用鏈追蹤? 224

      11.5 服務(wù)指標(biāo)可視化? 230

      11.6 服務(wù)調(diào)用樹? 235

      11.7 本章小結(jié)? 239

      第12章 Istio維護(hù)? 240

      12.1 整體介紹? 240

      12.2 Istio服務(wù)網(wǎng)格儀表板? 241

      12.3 升級Istio? 245

      12.4 使用Helm定制部署Istio? 253

      12.5 故障排除? 257

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

      12.7 本章小結(jié)? 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服務(wù)上開啟mTLS? 304

      13.11 網(wǎng)格中的服務(wù)健康檢查? 306

      13.12 Envoy代理Ingressgateway? 308

      13.13 Mixer與Adapter模型? 311

      13.14 本章小結(jié)? 312

      Kubernetes 微服務(wù) Istio

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:2013excel表格大小如何調(diào)整(在excel表格中怎么調(diào)整表格大小)
      下一篇: 提高財務(wù)效率的財務(wù)電子表格工具
      相關(guān)文章
      久久久久亚洲av无码专区喷水 | 亚洲va久久久噜噜噜久久天堂| 亚洲日韩中文字幕无码一区| 亚洲美女视频一区| 久久精品a亚洲国产v高清不卡| 亚洲国产精品国自产电影| 亚洲Av永久无码精品三区在线 | 日韩亚洲国产综合高清| 国产成人精品亚洲2020| 亚洲中文字幕AV在天堂| 亚洲综合色区中文字幕| 亚洲免费观看在线视频| 亚洲电影在线免费观看| 亚洲免费黄色网址| 国产亚洲玖玖玖在线观看| 亚洲性无码AV中文字幕| 亚洲精品无码专区久久| 国产精品亚洲一区二区麻豆| 亚洲国产精品成人精品软件| 亚洲欧洲国产经精品香蕉网| 亚洲国产成人久久综合一区| 亚洲最大的黄色网| 亚洲成a人无码亚洲成www牛牛 | 国精无码欧精品亚洲一区| 亚洲性久久久影院| 亚洲精品午夜国产VA久久成人| 国产亚洲色婷婷久久99精品| 亚洲精品国产成人专区| 亚洲国产中文在线二区三区免| 亚洲精品天堂在线观看| 色窝窝亚洲AV网在线观看| 亚洲国产精品自在拍在线播放| 久久久久久A亚洲欧洲AV冫| 亚洲精品国产字幕久久不卡| 亚洲国产精久久久久久久| 亚洲同性男gay网站在线观看| 亚洲久悠悠色悠在线播放| heyzo亚洲精品日韩| 亚洲中文字幕无码不卡电影| 久久久亚洲欧洲日产国码农村| 亚洲精品在线网站|