Service Mesh實戰

Service Mesh實戰

《Service Mesh實戰》是2018年12月機械工業出版社出版的圖書,作者是楊章顯,該書主要講述了如何基於Linkerd和Kubernetes開發和部署微服務。

基本介紹

  • 中文名:Service Mesh實戰
  • 作者:楊章顯
  • 出版社:機械工業出版社
  • ISBN:9787111612209
內容簡介,圖書目錄,作者簡介,

內容簡介

這是一部面向生產實踐環境的Service Mesh實戰指南,它講解了如何基於Linkerd和Kubernetes開發和部署微服務。作者是思科的高級工程師,是國內Service Mesh領域的先驅者,較早將Linkerd套用到了生產實踐中。書中詳細介紹了Linkerd能解決什麼樣的問題,會給開發和運維人員帶來什麼樣的好處。融合作者使用Linkerd的一些經驗和教訓,詳細闡述了如何配置、部署和管理Linkerd以及在Kubernetes平台運行微服務,並且講述了如何開發自定義Linkerd外掛程式實現特定功能。通過這一系列內容的學習,讀者將理解Linkerd的工作原理,甚至對學習或者開發他Service Mesh也具有深刻的借鑑意義。全書共9章,分為三個部分:
部分(第1~2章) 基礎篇:第1章主要介紹了Service Mesh的起源、功能、現有產品,以及技術選型的考量;第2章是Linkerd的入門,講解了Linkerd及其工作環境的安裝、配置和部署。
第二部分(第3~6章) 中級篇:這部分內容是本書的核心之一,依次講解了Linkerd的配置、數據流工作原理、部署模式的選擇,以及它的控制臺Namerd如何管理多個Linkerd實例以及通過Linkerd實現運行時動態切換流量。
第三部分(第7~9章) 實戰篇:第7章首先講解了閱讀本書必須掌握的Kubernetes的基礎知識;第8章重點通過實例演示了如何以Linkerd作為Kubernetes的Service Mesh工具運行微服務;第9章講述了如何開發自定義的Linkerd外掛程式來實現特定的功能。

圖書目錄

前言
第一部分 基礎篇
第1章 Service Mesh簡介 2
1.1 微服務架構面臨的一些挑戰 2
1.2 技術架構演進 6
1.3 什麼是Service Mesh 9
1.4 Service Mesh的功能 10
1.5 業界Service Mesh產品 11
1.5.1 Linkerd 11
1.5.2 Envoy 12
1.5.3 Istio 13
1.5.4 Conduit 13
1.5.5 Linkerd、Envoy、Istio及Conduit比較 14
1.5.6 我們需要Service Mesh嗎 15
1.6 總結 15
第2章 Linkerd入門 16
2.1 Linkerd是什麼 16
2.2 Linkerd架構 17
2.3 Linkerd主要功能 19
2.4 安裝Linkerd 21
2.4.1 環境準備 21
2.4.2 傳統安裝方式 24
2.4.3 基於Docker的安裝方式 27
2.5 示例演示 28
2.5.1 示例準備 28
2.5.2 基於檔案的服務發現 28
2.5.3 示例演示 29
2.6 總結 30
第二部分 中級篇
第3章 深入淺出Linkerd配置 32
3.1 示例套用 32
3.2 環境準備 34
3.2.1 虛擬機及Docker引擎 34
3.2.2 服務發現:Consul 35
3.2.3 服務註冊:Registrator 37
3.2.4 部署Linkerd 38
3.2.5 部署示例服務 41
3.3 Linkerd術語 45
3.4 Linkerd配置 46
3.4.1 配置構成 46
3.4.2 admin 48
3.4.3 namer 48
3.4.4 router 50
3.4.5 telemetry 55
3.4.6 usage 55
3.5 總結 55
第4章 深入Linkerd數據訪問流 56
4.1 dtab詳解 56
4.1.1 dtab定義 56
4.1.2 dtab路由原理 57
4.1.3 示例演示 60
4.2 數據訪問流詳解 62
4.2.1 鑑別 62
4.2.2 綁定 63
4.2.3 解析 64
4.2.4 轉換 64
4.2.5 負載均衡 65
4.3 總結 67
第5章 Linkerd部署模式 68
5.1 Linkerd部署模式 68
5.1.1 Per-host模式 68
5.1.2 Sidecar模式 69
5.1.3 Per-host模式和Sidecar模式 69
5.2 配置模型 70
5.2.1 service-to-linker模型 70
5.2.2 linker-to-service模型 73
5.2.3 linker-to-linker模型 76
5.3 總結 78
第6章 Linkerd控制層:Namerd 79
6.1 Namerd簡介 79
6.2 Namerd和Linkerd 80
6.3 Namerd配置詳解 82
6.3.1 admin配置 82
6.3.2 interface配置 83
6.3.3 storage配置 84
6.3.4 namer配置 85
6.4 連線Linkerd和Namerd 85
6.4.1 準備Namerd配置檔案 85
6.4.2 啟動Namerd 86
6.4.3 準備Linkerd配置檔案 88
6.4.4 啟動Linkerd 89
6.4.5 示例演示 90
6.5 管理dtab路由 90
6.5.1 Namerd API簡介 90
6.5.2 通過Namerd API管理dtab 91
6.5.3 通過namerctl CLI管理dtab 92
6.6 總結 93
第三部分 實戰篇
第7章 Kubernetes基礎 96
7.1 Kubernetes是什麼 96
7.2 為什麼需要Kubernetes 97
7.3 Kubernetes架構 99
7.4 使用Kubeadm部署Kubernetes集群 100
7.4.1 部署環境準備 100
7.4.2 部署Kubernetes集群 101
7.5 Kubernetes基本概念及資源生命周期管理 108
7.5.1 Container Runtime 108
7.5.2 Container 108
7.5.3 Pod 109
7.5.4 Label 112
7.5.5 RelicaSet 114
7.5.6 Deployment 116
7.5.7 Service 119
7.5.8 DaemonSet 121
7.5.9 ConfigMap和Secret 124
7.6 總結 128
第8章 基於Linkerd和Kubernetes的微服務實踐 129
8.1 部署服務於Kubernetes平台 130
8.1.1 定義示例服務聲明檔案 130
8.1.2 架構預覽 132
8.1.3 部署示例服務 133
8.1.4 驗證 134
8.2 Linkerd作為Kubernetes平台的Service Mesh工具 135
8.2.1 架構預覽 136
8.2.2 Kubernetes平台上如何配置Linkerd 137
8.2.3 運行Linkerd 141
8.2.4 部署示例服務 142
8.2.5 驗證 144
8.3 服務間端到端的TLS加密 145
8.3.1 SSL/TLS簡介 146
8.3.2 Linkerd透明TLS 147
8.3.3 架構預覽 150
8.3.4 生成證書 151
8.3.5 配置Linkerd 151
8.3.6 運行Linkerd及示例服務 152
8.3.7 驗證 153
8.4 Linkerd作為Kubernetes的Ingress Controller 155
8.4.1 架構預覽 156
8.4.2 Ingress Identifer簡介 157
8.4.3 配置Lnkerd 158
8.4.4 運行Linkerd及示例服務 160
8.4.5 驗證 160
8.5 Linkerd作為邊界流量入口 164
8.5.1 架構預覽 164
8.5.2 Ingress Controller局限性 165
8.5.3 部署內部Linkerd和示例服務 165
8.5.4 部署邊界Linkerd 166
8.5.5 HAproxy作為邊界Linkerd負載均衡器 167
8.6 Linkerd作為邊界出口 171
8.6.1 架構預覽 172
8.6.2 部署EgressLinkerd 173
8.6.3 部署示例服務 177
8.6.4 部署內部Linkerd 177
8.7 基於Linkerd實現運行時路由 182
8.7.1 運行時單個請求路由 182
8.7.2 基於Namerd實現全局動態路由 185
8.8 總結 198
第9章 開發Linkerd外掛程式 199
9.1 Linkerd模組開發框架 199
9.2 如何開發自定義外掛程式 202
9.2.1 需求定義 202
9.2.2 環境準備 203
9.2.3 代碼開發 203
9.2.4 編譯 207
9.2.5 安裝 209
9.2.6 驗證 210
9.3 總結 213

作者簡介

楊章顯,架構師和微服務技術專家,2012加入思科,擔任高級系統工程師。具有多年企業級線上會議系統的運維以及軟體發布、變更管理經驗。熟悉微服務、容器和Service Mesh等技術,在容器編排(尤其是Nomad和Kubernetes)、自動化運維、部署、監控等方面有豐富的實戰經驗,是公司微服務平台負責人之一。

相關詞條

熱門詞條

聯絡我們