寫給架構師的Linux實踐:設計並實現基於Linux的IT解決方案

《寫給架構師的Linux實踐:設計並實現基於Linux的IT解決方案》是2020年機械工業出版社出版的圖書。

基本介紹

  • 中文名:寫給架構師的Linux實踐:設計並實現基於Linux的IT解決方案
  • 出版時間:2020年5月1日
  • 出版社:機械工業出版社
  • ISBN:9787111654353
內容簡介,圖書目錄,

內容簡介

本書是一本幫你全面掌握各種Linux組件與功能,以及相關技術的實用指南。書中分別從存儲、可用性、數據監控和系統管理四方面詳細介紹如何設計並實現基於Linux的解決方案。
在面對具體的問題時,作者首先指出有助於解決該問題的幾項指標,然後介紹可供選擇的各種工具與做法並分析優劣,最後通過詳細的配置檔案、程式代碼及控制台命令幫助給出較為恰當的解決方案。
全書共15章,分為四部分。
●第一部分(第1~5章)介紹使用GlusterFS部署高性能的存儲解決方案時,應該如何做出必要的決策;
●第二部分(第6~9章)講解Kubernetes的優勢,說明怎樣用它來編排容器化應用程式的部署與管理工作,並演示解決方案的部署過程;
●第三部分(第10~12章)講解如何實現ELK stack(ELK棧),通過其中的Elasticsearch、Logstash與Kibana可以把環境日誌管理好;
●第四部分(第13~15章)介紹IaC(Infrastructure as Code)的工作原理,以及用Saltstack來管理系統有哪些好處,並且討論一些設計經驗。
本書適合Linux 系統管理員、Linux支持工程師、DevOps工程師、Linux顧問,以及使用各種開源技術的專業工作者閱讀參考,以幫助其學習基於Linux及開源軟體的解決方案,並提高架構、設計與實現水平。

圖書目錄

【第一部分 用GlusterFS 制定高性能的存儲解決方案】
●第1章 設計方法簡介 …… 2
1.1 定義解決方案設計的多個階段及其意義 …… 2
1.2 分析問題並準確地提出問題 …… 3
1.2.1 技術角度 …… 4
1.2.2 業務角度 …… 5
1.2.3 功能角度 …… 6
1.3 考慮可行的解決方案 …… 6
1.4 把解決方案實現出來 …… 9
●第2章 定義 GlusterFS 存儲 …… 11
2.1 技術需求 …… 11
2.2 什麼是集群 …… 11
2.2.1 用集群處理計算任務 …… 11
2.2.2 存儲集群 …… 13
2.3 什麼是 GlusterFS …… 13
2.4 塊存儲、檔案存儲與對象存儲 …… 15
2.4.1 塊存儲 …… 16
2.4.2 檔案存儲 …… 17
2.4.3 對象存儲 …… 18
2.5 為什麼選擇 GlusterFS …… 20
2.5.1 GlusterFS 的特性 …… 21
2.5.2 Gluster 存儲卷的類型 …… 22
2.6 對高冗餘存儲的需求 …… 25
2.7 對高性能存儲的需求 …… 27
2.8 並行 I/O …… 28
●第3章 架構存儲集群 …… 30
3.1 技術需求 …… 30
3.2 GlusterFS 對計算機的要求 …… 30
3.2.1 RAM …… 31
3.2.2 CPU …… 31
3.3 需要多大的存儲空間 …… 32
3.3.1 GlusterFS的卷類型 …… 32
3.3.2 應用程式所需的空間 …… 33
3.3.3 項目的增長情況 …… 33
3.4 性能方面的注意事項 …… 34
3.4.1 吞吐量 …… 34
3.4.2 延遲 …… 34
3.4.3 IOPS …… 35
3.4.4 I/O 的大小 …… 35
3.4.5 GlusterFS 的性能 …… 35
3.5 確保高可用性的最佳方法 …… 37
3.5.1 用複製卷確保高可用性 …… 37
3.5.2 用分散卷確保高可用性 …… 38
3.5.3 地域複製 …… 38
3.6 根據工作類型來確定需求 …… 39
3.6.1 文檔 …… 39
3.6.2 系統工具 …… 39
3.6.3 檔案的類型與大小 …… 39
3.6.4 提出正確的問題 …… 40
●第4章 在雲基礎設施上使用 GlusterFS …… 43
4.1 技術需求 …… 43
4.2 設定後端存儲所需的 brick …… 44
4.2.1 部署 Azure …… 44
4.2.2 用 ZFS 做 brick 的後端 …… 45
4.3 在節點上安裝 GlusterFS …… 49
4.3.1 安裝必要的軟體包 …… 49
4.3.2 創建 trusted pool …… 50
4.4 創建存儲卷 …… 51
4.4.1 創建分散式的存儲卷 …… 51
4.4.2 掛載存儲卷 …… 52
4.5 最佳化性能 …… 52
4.5.1 調整 GlusterFS …… 52
4.5.2 調整 ZFS …… 53
●第5章 分析 Gluster 系統的性能 …… 56
5.1 技術需求 …… 56
5.2 概述目前的實現方案 …… 56
5.3 性能測試 …… 57
5.3.1 理論上的性能 …… 57
5.3.2 性能工具 …… 58
5.4 可用性測試 …… 63
5.5 擴展 …… 63
【第二部分 用Kubernetes製作可用性高的Nginx Web應用程式】
●第6章 創建可用性高的自我修復架構 …… 66
6.1 微服務 …… 66
6.2 創建容器鏡像 …… 69
6.2.1 FROM 指令 …… 70
6.2.2 LABEL 指令 …… 70
6.2.3 RUN 指令 …… 71
6.2.4 ENV指令 …… 71
6.2.5 COPY指令 …… 72
6.2.6 EXPOSE指令 …… 73
6.2.7 CMD與ENTRYPOINT指令 …… 73
6.3 構建容器鏡像時的經驗 …… 76
6.4 容器編排 …… 80
6.5 Kubernetes …… 81
●第7章 了解 Kubernetes 集群的核心組件 …… 84
7.1 控制面的各種 Kubernetes 組件 …… 84
7.1.1 kube-apiserver …… 85
7.1.2 kube-controller-manager …… 85
7.1.3 kube-scheduler …… 85
7.1.4 etcd 資料庫 …… 85
7.2 Kubernetes 的工作節點 …… 86
7.2.1 容器運行時 …… 86
7.2.2 kubelet …… 86
7.2.3 kube-proxy …… 87
7.3 Kubernetes 的對象 …… 87
7.3.1 Kubernetes 的基本對象:pod …… 89
7.3.2 deployment 對象 …… 91
7.3.3 服務 …… 93
7.3.4 Kubernetes 與持久存儲 …… 95
●第8章 架構 Kubernetes 集群 …… 100
8.1 各種 Kubernetes 組件的規模與尺寸問題 …… 100
8.1.1 etcd 方面的問題 …… 100
8.1.2 kube-apiserver 的數量與規格 …… 101
8.1.3 工作節點 …… 101
8.1.4 負載均衡器方面的問題 …… 102
8.2 存儲方面的問題 …… 103
8.3 網路方面的需求 …… 104
8.4 定製 kube 對象 …… 106
8.4.1 名稱空間 …… 106
8.4.2 對名稱空間所能使用的資源做出限制 …… 107
8.4.3 定製 pod …… 108
●第9章 配置並部署 Kubernetes …… 114
9.1 部署基礎設施 …… 114
9.1.1 安裝 Azure CLI …… 114
9.1.2 巨觀設計概述 …… 115
9.1.3 配置網路資源 …… 116
9.1.4 配置計算資源 …… 117
9.1.5 把 management VM 準備好 …… 119
9.1.6 Kubeconfig …… 127
9.1.7 為控制面的各組件安裝必要的二進制檔案 …… 130
9.1.8 為 kubelet 設定 RBAC 許可權 …… 137
9.1.9 設定負載均衡器 …… 138
9.1.10 設定工作節點 …… 144
9.1.11 配置 Kubernetes 的網路 …… 148
9.1.12 DNS 伺服器 …… 150
9.1.13 雲平台所提供的託管式 Kubernetes 解決方案 …… 150
【第三部分 Elastic Stack(ELK Stack)】
●第10章 用 ELK Stack 進行監控 …… 154
10.1 技術需求 …… 154
10.2 為什麼要做數據監測 …… 154
10.2.1 通過歷史數據制定決策 …… 155
10.2.2 主動探查有可能出現的問題 …… 156
10.2.3 了解整套產品的性能 …… 156
10.2.4 合理制定預算計畫 …… 157
10.3 集中式的日誌 …… 157
10.4 Elasticsearch 概述 …… 159
10.4.1 迅速 …… 159
10.4.2 易於擴展 …… 159
10.4.3 可用性高 …… 159
10.5 Logstash …… 159
10.5.1 Grok …… 160
10.5.2 定製的模式 …… 160
10.6 用 Kibana 進行整合 …… 161
●第11章 設計 ELK Stack …… 164
11.1 技術要求 …… 164
11.2 Elasticsearch 對 CPU 的要求 …… 165
11.2.1 CPU 的數量 …… 165
11.2.2 CPU 的速度 …… 165
11.2.3 CPU 對性能的影響 …… 165
11.2.4 與 CPU 規格有關的建議 …… 167
11.3 Elasticsearch 對記憶體的要求 …… 167
11.3.1 檔案系統的快取 …… 168
11.3.2 禁用 swap …… 169
11.3.3 因記憶體不足而導致的問題 …… 169
11.3.4 與記憶體有關的建議 …… 171
11.4 Elasticsearch 對存儲設備的要求 …… 172
11.4.1 對存儲容量的要求 …… 172
11.4.2 對存儲性能的要求 …… 172
11.4.3 與存儲設備有關的一些建議 …… 172
11.5 Logstash 與 Kibana 的要求 …… 173
11.5.1 Logstash …… 173
11.5.2 Kibana …… 173
●第12章 用 Elasticsearch、Logstash 與 Kibana管理日誌 …… 176
12.1 技術需求 …… 176
12.2 概述 Elastic Stack 的部署工作 …… 177
12.3 安裝 Elasticsearch …… 178
12.3.1 配置 RPM 軟體倉庫 …… 178
12.3.2 Elasticsearch 的數據目錄 …… 179
12.4 配置 Elasticsearch …… 182
12.4.1 修改 Elasticsearch 的 YAML 配置檔案 …… 182
12.4.2 啟動 Elasticsearch …… 185
12.4.3 添加 Elasticsearch 節點 …… 186
12.5 安裝Logstash與Kibana …… 187
12.6 配置 Kibana …… 192
12.6.1  修改 Kibana 的 YAML 檔案 …… 192
12.6.2 起到協調作用的 Elasticsearch 節點 …… 192
12.7 啟動 Logstash 與 Kibana …… 193
12.8 什麼是 Beats …… 194
12.8.1 Filebeat …… 194
12.8.2 Metricbeat …… 195
12.9 把必要的 Beats 安裝好 …… 195
12.10 配置 Beats 客戶端 …… 196
12.10.1 修改 Filebeat 的 YAML 檔案 …… 196
12.10.2 修改 Metricbeat 的 YAML 檔案 …… 198
12.11 後續步驟 …… 199
【第四部分 用 Saltstack 管理系統】
●第13章 用 Salt方案解決管理問題 …… 204
13.1 把系統管理工作集中到同一個地方 …… 204
13.2 理解NaCI …… 208
●第14章 實踐Salt方案 …… 218
14.1 正式接觸Salt …… 218
14.2 用包管理器安裝Salt …… 229
●第15章 設計經驗 …… 246
15.1 根據項目所在的環境進行設計 …… 246
15.2 怎樣設計本地項目 …… 247
15.3 怎樣設計雲端環境中的項目 …… 249
15.4 將項目遷移到雲端 …… 249

相關詞條

熱門詞條

聯絡我們