雲原生Kubernetes自動化運維實踐
高鵬舉
- 出版商: 清華大學
- 出版日期: 2025-03-01
- 定價: $594
- 售價: 8.5 折 $505
- 語言: 簡體中文
- 頁數: 338
- ISBN: 7302679347
- ISBN-13: 9787302679349
-
相關分類:
Kubernetes
下單後立即進貨 (約4週~6週)
商品描述
"《雲原生Kubernetes自動化運維實踐》以一名大型企業集群運維工程師的實戰經驗為基礎,全面系統地闡述Kubernetes(K8s)在自動化運維領域的技術應用。《雲原生Kubernetes自動化運維實踐》共16章,內容由淺入深,逐步揭示K8s的原理及實際操作技巧。第1章引領讀者踏入Kubernetes的世界,詳細介紹其起源、核心組件的概念以及集群安裝方法。第2~4章深入剖析Pod控制器、Label標簽、容器鉤子、探針、Service服務發現與負載均衡機制。第5~7章則探討Ingress-Nginx服務網關的應用、存儲捲管理、配置和密鑰管理的高級功能。第8~10章聚焦於鑒權機制、容器運行時的選擇與配置,以及GitLab企業級代碼倉庫的部署和管理。第11~13章涵蓋Jenkins持續集成交付工具、ArgoCD聲明式持續交付,以及雲原生負載均衡MetalLB的應用。第14章和第15章分別介紹雲原生日誌與監控集成架構,以及Istio微服務時代的服務網格領航者。最後,第16章通過一系列實戰案例,展示在K8s環境中安裝並實驗多種服務的詳細過程。 《雲原生Kubernetes自動化運維實踐》不僅整合了多種自動化運維工具,還提供了豐富的運維案例,無論是初學者還是有一定經驗的運維工程師,都能從中獲得寶貴的知識和實踐經驗,提升自身的技術水平。"
作者簡介
高鵬舉 現任國家電網公司高級運維開發工程師。在Linux相關技術領域擁有深厚的造詣,尤其在容器化、虛擬化、自動化運維、系統監控、腳本編寫以及服務網格等方面具備豐富的實踐經驗和深入的研究。憑借其紮實的技術功底與廣泛的項目經歷,成功主導並實施了多個國有企業的關鍵項目。 此外,他還活躍於各大技術社區,累計發表了超過2000篇關於運維開發的高質量教程文章,廣受讀者讚譽。
目錄大綱
目 錄
第 1 章 走進Kubernetes的世界 1
1.1 為什麽使用Kubernetes 1
1.2 Kubernetes節點組件 2
1.2.1 Master節點運行的組件 2
1.2.2 Node節點運行的組件 2
1.3 Kubernetes集群的搭建與配置 3
1.3.1 Kubeadm工具介紹 3
1.3.2 基礎環境配置 4
1.3.3 升級內核版本 10
1.3.4 三大組件的安裝 12
1.3.5 集群鏡像處理 13
1.3.6 集群初始化 14
1.3.7 Node節點加入集群 14
1.3.8 Calico網絡插件安裝 16
1.3.9 Metrics-Server服務的安裝 17
1.3.10 Kuboard管理平臺安裝 20
1.4 本章小結 22
第 2 章 Pod控制器 23
2.1 Pod、Kubectl與YAML 23
2.1.1 Pod及其操作 24
2.1.2 Kubectl命令行工具 25
2.1.3 YAML文件 27
2.2 Replication 28
2.3 ReplicaSet 31
2.4 Deploymant 36
2.4.1 Deployment概述 36
2.4.2 Deployment創建與訪問 36
2.4.3 滾動更新策略實例 38
2.4.4 更新/回滾/暫停/恢復 41
2.4.5 擴容的3種方式 45
2.5 StatefulSet 46
2.5.1 StatefulSet概述 46
2.5.2 StatefulSet創建服務 47
2.5.3 Ping域名實驗 49
2.5.4 解析域名實驗 50
2.5.5 創建StatefulSet服務自動申請PV實驗 51
2.6 DaemonSet 55
2.6.1 DaemonSet概述 55
2.6.2 DaemonSet實例 56
2.7 CronJob 57
2.7.1 CronJob概述 57
2.7.2 CronJob資源清單詳解 58
2.7.3 CronJob實驗 59
2.7.4 CronJob實戰備份MySQL數據庫 61
2.8 Job 64
2.8.1 Job概述 64
2.8.2 Job實驗 64
2.9 本章小結 66
第 3 章 Label、容器鉤子、探針 67
3.1 Label標簽 67
3.1.1 Label概述 67
3.1.2 Label實驗 68
3.2 InitC 70
3.2.1 InitC概述 71
3.2.2 InitC實驗 71
3.2.3 部署Elasticsearch服務時配置InitC 73
3.3 容器鉤子 75
3.3.1 容器鉤子概述 75
3.3.2 容器鉤子實驗 76
3.4 探針 78
3.4.1 探針概述 78
3.4.2 StartUp Probe啟動探針實驗 79
3.4.3 Readiness Probe就緒探針實驗 80
3.4.4 LivenessProbe存活探針實驗 82
3.5 本章小結 83
第 4 章 Service服務發現與負載均衡 84
4.1 Service原理 84
4.2 ClusterIP 85
4.2.1 ClusterIP概述 85
4.2.2 ClusterIP實驗 86
4.3 NodePort 88
4.3.1 NodePort概述 88
4.3.2 NodePort實驗 89
4.4 Headless Service 91
4.4.1 Headless Service概述 91
4.4.2 Headless Service實驗 92
4.5 ExternalName 94
4.5.1 ExternalName概述 95
4.5.2 ExternalName實驗 95
4.6 LoadBalancer 98
4.6.1 LoadBalancer概述 98
4.6.2 如何指定LoadBalancer類型的服務IP 98
4.7 Service埠範圍及解除限制 99
4.7.1 Service埠範圍概述 99
4.7.2 Service埠範圍解除限制 99
4.8 使用Service代理K8s外部應用 100
4.8.1 使用Service代理K8s外部應用概述 101
4.8.2 使用Service代理K8s外部應用實驗 101
4.9 本章小結 103
第 5 章 Ingress-Nginx服務網關 104
5.1 Ingress-Nginx概述 104
5.2 Ingress-Nginx安裝 104
5.3 Annotations註解 109
5.3.1 流量復制 109
5.3.2 IP白名單 110
5.3.3 IP黑名單 111
5.3.4 域名轉發 111
5.3.5 返回字符串 112
5.3.6 文件上傳大小 113
5.3.7 域名HTTPS訪問 113
5.3.8 對接外部的認證服務 115
5.3.9 配置默認頁面 116
5.3.10 Nginx如何獲取客戶端真實IP 117
5.3.11 重定向 117
5.3.12 重寫 118
5.3.13 多域名指向同一個後端服務 118
5.4 本章小結 119
第 6 章 Kubernetes存儲與持久化 120
6.1 Kubernetes存儲類概述 120
6.2 Kubernetes持久捲聲明 121
6.3 持久捲的生命周期 121
6.4 動態申請持久捲實驗 122
6.4.1 NFS共享存儲搭建 122
6.4.2 nfs-client-provisioner存儲類搭建 124
6.4.3 服務使用存儲類動態申請資源實驗 129
6.5 PV/PVC詳解 131
6.5.1 PV/PVC概述 131
6.5.2 PVC的創建流程 131
6.5.3 PV訪問模式 132
6.5.4 PV回收策略 132
6.5.5 PV/PVC捲狀態 133
6.6 Deployment直連NFS存儲 134
6.7 本章小結 135
第 7 章 ConfigMap配置和Secret密鑰管理 136
7.1 ConfigMap:非敏感配置信息的集中管理 136
7.1.1 ConfigMap概述 136
7.1.2 使用目錄方式創建ConfigMap 137
7.1.3 使用文件方式創建ConfigMap 139
7.1.4 使用字面值方式創建ConfigMap 139
7.1.5 設置ConfigMap不允許更改 140
7.1.6 通過envfrom方式指定ConfigMap 140
7.1.7 通過valueFrom方式指定ConfigMap 142
7.1.8 Nginx通過ConfigMap管理配置文件 143
7.2 Secret:敏感信息的安全存儲與訪問 147
7.2.1 Secret概述 147
7.2.2 使用文件方式創建Secret 147
7.2.3 使用YAML方式創建Secret 149
7.2.4 Secret權限解析 149
7.2.5 使用Docker的config.json方式創建Secret 149
7.2.6 使用Kubectl創建Docker Registry認證的Secret 150
7.3 本章小結 151
第 8 章 Kubernetes鑒權機制 152
8.1 Kubernetes鑒權機制概述 152
8.2 鑒權機制的工作流程 152
8.3 角色/角色綁定概述 153
8.4 用戶鑒權實戰 154
8.5 本章小結 160
第 9 章 容器運行時Containerd 161
9.1 Containerd概述 161
9.2 安裝與配置Containerd 162
9.2.1 安裝Containerd 162
9.2.2 配置Containerd阿裡雲鏡像加速器 164
9.2.3 配置Containerd使用自建鏡像倉庫 164
9.3 使用nerdctl管理Containerd 165
9.3.1 安裝nerdctl 165
9.3.2 nerdctl常用命令示例 166
9.4 使用nerdctl構建鏡像 167
9.4.1 安裝BuildKit和cni-plugins 168
9.4.2 構建鏡像 169
9.5 本章小結 170
第 10 章 GitLab企業級代碼倉庫 171
10.1 GitLab目錄結構 171
10.2 部署GitLab 172
10.3 GitLab的配置與使用 183
10.3.1 基礎設置 183
10.3.2 創建項目 184
10.3.3 修改克隆地址 185
10.3.4 拉取/提交代碼 188
10.4 本章小結 190
第 11 章 Jenkins持續集成交付工具 191
11.1 Jenkins概述 191
11.2 Kubernetes集群部署Jenkins 192
11.3 Jenkins對接K8s實現動態Slave 199
11.3.1 基礎設置並對接K8s 199
11.3.2 自由風格項目實現動態Slave 203
11.3.3 Pipeline流水線項目實現動態Slave 205
11.4 本章小結 208
第 12 章 ArgoCD聲明式持續交付 209
12.1 ArgoCD概述 209
12.2 Kubernetes部署ArgoCD 210
12.3 ArgoCD的配置及使用 215
12.3.1 ArgoCD連接Kubernetes 215
12.3.2 使用ArgoCD CLI集成GitLab並創建App 215
12.4 本章小結 221
第 13 章 雲原生負載均衡之MetalLB 222
13.1 自建LoadBalancer種類 222
13.2 MetalLB的核心概念與架構 223
13.2.1 MetalLB的核心概念 224
13.2.2 MetalLB架構 224
13.3 Kubernetes部署MetalLB 225
13.3.1 檢查是否開啟IPVS功能 225
13.3.2 配置並創建MetaLB服務 226
13.3.3 創建LoadBalancer類型的服務 228
13.3.4 使用MetalLB進行服務的外部訪問 229
13.4 本章小結 230
第 14 章 Helm與Loki-Stack搭建日誌監控系統 231
14.1 Helm包管理與部署 231
14.1.1 Helm概述 231
14.1.2 CentOS 7系統安裝Helm3 232
14.2 Loki-Stack部署與實踐 233
14.2.1 Loki與Loki-Stack概述 233
14.2.2 Helm3部署Loki-Stack 234
14.2.3 外部訪問Grafana 237
14.2.4 日誌監控查詢 238
14.2.5 導入儀表盤面板 239
14.2.6 監控告警 242
14.3 本章小結 246
第 15 章 Istio微服務時代的服務網格領航者 247
15.1 Istio概述 247
15.2 Istio核心組件 248
15.2.1 Istio-Pilot 248
15.2.2 Istio-Telemetry 248
15.2.3 Istio-Policy 249
15.2.4 Istio-Citadel 249
15.2.5 Istio-Sidecar-Injector 250
15.2.6 Istio-Proxy 250
15.2.7 Istio-Ingress-Gateway 251
15.2.8 Istio-Envoy 251
15.3 部署Istio 251
15.3.1 Istioctl的安裝 251
15.3.2 Istioctl安裝Istio 253
15.4 Sidecar邊車容器註入 256
15.4.1 Sidecar手動註入 256
15.4.2 Sidecar自動註入 259
15.4.3 Sidecar取消自動註入 260
15.5 4種配置資源概念詳解 261
15.5.1 VirtualService 261
15.5.2 DestinationRule 261
15.5.3 ServiceEntry 262
15.5.4 Gateway 262
15.6 VirtualService關鍵字配置示例 262
15.6.1 使用weight關鍵字拆分流量 262
15.6.2 使用timeout關鍵字設置請求超時時間 263
15.6.3 使用retries關鍵字設置重試 264
15.6.4 使用fault關鍵字設置故障註入 264
15.6.5 VirtualService資源清單詳解 265
15.7 Istio流量治理 265
15.7.1 請求頭httpHeaderName 266
15.7.2 HTTP流量鏡像 269
15.7.3 重寫 274
15.7.4 重定向 277
15.7.5 流量權重-藍綠與金絲雀發布 282
15.7.6 超時 287
15.7.7 重試 293
15.7.8 斷路器/熔斷 303
15.7.9 故障註入 313
15.8 本章小結 316
第 16 章 Kubernetes服務部署實戰 317
16.1 K8s部署MinIO開源對象存儲 317
16.2 K8s部署Metabase數據庫連接工具 321
16.3 K8s部署phpMyAdmin數據庫連接工具 326
16.4 K8s部署Nacos配置中心 330
16.5 本章小結 338