Kubernetes修煉手冊(第2版)
奈吉爾·波爾頓(Nigel Poulton)
- 出版商: 人民郵電
- 出版日期: 2025-05-01
- 售價: $539
- 語言: 簡體中文
- 頁數: 302
- ISBN: 7115662339
- ISBN-13: 9787115662330
-
相關分類:
Kubernetes
下單後立即進貨 (約4週~6週)
相關主題
商品描述
本書是Kubernetes入門圖書,共16章,全面介紹Kubernetes的基礎知識,包括
Kubernetes架構、構建Kubernetes集群、在Kubernetes上部署和管理應用、Kubernetes安全,以及微服務、容器化等術語的含義,並附帶大量的配置案例。本書內容充實、完善,可以幫助讀者快速入門Kubernetes。
本書適合系統管理員、開發人員,以及對Kubernetes感興趣的初學者閱讀。
作者簡介
奈吉爾·波爾頓(Nigel Poulton),亞馬遜暢銷圖書作者,存儲專家,Docker技術先驅。奈吉爾有豐富的運維技術經驗,著有多部容器相關的圖書,並開設了視頻培訓課程,在業界有非常大的影響力。
目錄大綱
第 1章 初識Kubernetes 001
1.1 Kubernetes的背景 001
1.1.1 編排器 001
1.1.2 容器化應用 002
1.1.3 雲原生應用 002
1.1.4 微服務應用 003
1.2 Kubernetes的誕生 004
1.2.1 Kubernetes和Docker 004
1.2.2 Kubernetes與Docker Swarm的對比 006
1.2.3 Kubernetes和Borg:抵抗是徒勞的 006
1.2.4 Kubernetes—名字從何而來 007
1.3 雲操作系統 007
1.3.1 雲的規模 008
1.3.2 應用的調度 008
1.3.3 一個簡單的模擬 009
1.4 本章小結 009
第 2章 Kubernetes操作概覽 010
2.1 Kubernetes概覽 011
2.1.1 作為集群的Kubernetes 011
2.1.2 作為編排器的Kubernetes 011
2.1.3 Kubernetes是如何工作的 012
2.2 控制平面與工作節點 013
2.2.1 控制平面 013
2.2.2 工作節點 017
2.3 Kubernetes DNS 018
2.4 Kubernetes應用打包 019
2.5 聲明式模型與期望狀態 020
聲明式示例 021
2.6 Pod 021
2.6.1 Pod與容器 022
2.6.2 Pod深度剖析 023
2.6.3 調度單元 024
2.6.4 原子操作 024
2.6.5 Pod的生命周期 024
2.6.6 Pod的不變性 025
2.7 Deployment 025
2.8 Service與穩定的網絡 025
2.9 本章小結 027
第3章 安裝Kubernetes 028
3.1 在筆記本計算機上創建Kubernetes集群 028
3.1.1 Docker Desktop 029
3.1.2 通過K3d創建本地多節點Kubernetes集群 030
3.1.3 通過KinD創建本地多節點Kubernetes集群 032
3.2 在雲上創建托管的Kubernetes集群 034
3.2.1 GKE 034
3.2.2 LKE 036
3.3 安裝和使用kubectl 038
3.4 本章小結 040
第4章 Pod的使用 041
4.1 Pod原理 042
4.1.1 為什麼是Pod 042
4.1.2 靜態Pod與控制器 046
4.1.3 單容器和多容器Pod 046
4.1.4 Pod的部署 047
4.1.5 剖析Pod 047
4.1.6 Pod與共享網絡 047
4.1.7 Pod網絡 048
4.1.8 Pod的原子部署 049
4.1.9 Pod的生命周期 049
4.1.10 Pod的不變性 050
4.1.11 Pod和擴縮容 051
4.2 多容器Pod 051
4.2.1 邊車多容器Pod 052
4.2.2 適配器多容器Pod 052
4.2.3 大使多容器Pod 052
4.2.4 初始化多容器Pod 053
4.2.5 Pod原理總結 053
4.3 Pod實戰 053
4.3.1 Pod清單文件 054
4.3.2 清單文件:共情即代碼 055
4.3.3 基於清單文件部署Pod 056
4.3.4 查看運行中的Pod 056
4.3.5 Pod的主機名 060
4.3.6 檢查Pod的不變性 061
4.3.7 多容器Pod示例—初始化容器 061
4.3.8 多容器Pod示例—邊車容器 063
4.4 Pod清理 065
4.5 本章小結 066
第5章 虛擬集群與命名空間 067
5.1 命名空間的使用案例 068
5.2 查看命名空間 069
5.3 創建和管理命名空間 070
配置kubectl以使用特定命名空間 071
5.4 部署到命名空間 072
5.5 清理 074
5.6 本章小結 074
第6章 Kubernetes Deployment 075
6.1 Deployment原理 076
6.1.1 Deployment和Pod 077
6.1.2 Deployment和ReplicaSet 077
6.1.3 自愈和擴縮容 078
6.1.4 圍繞“狀態”的管理 079
6.1.5 使用Deployment進行滾動更新 081
6.1.6 回滾 083
6.2 創建Deployment 084
6.3 查看Deployment 086
訪問應用 088
6.4 進行擴縮容 090
6.5 進行滾動更新 091
暫停和恢復滾動更新 094
6.6 進行回滾 096
回滾和標簽 098
6.7 清理 099
6.8 本章小結 100
第7章 Kubernetes Service 101
7.1 Service原理 102
7.1.1 標簽和松耦合 103
7.1.2 Service和EndpointSlice 105
7.1.3 雙棧網絡(IPv4和IPv6) 106
7.1.4 從集群內部訪問Service 106
7.1.5 從集群外部訪問Service 107
7.1.6 Service原理總結 109
7.2 Service實戰 109
7.2.1 雙棧網絡入門 109
7.2.2 命令式方法 113
7.2.3 聲明式方法 115
7.2.4 LoadBalancer Service 118
7.3 清理 119
7.4 本章小結 119
第8章 Ingress 120
8.1 Ingress背景 121
8.2 Ingress架構 122
8.3 Ingress實戰 123
8.3.1 安裝NGINX Ingress controller 124
8.3.2 為多Ingress controller集群配置Ingress class 125
8.3.3 配置基於主機名和基於路徑的路由 126
8.3.4 部署應用 127
8.3.5 創建Ingress對象 127
8.3.6 查看Ingress對象 130
8.3.7 配置DNS名稱解析 131
8.3.8 測試Ingress 132
8.4 清理 133
8.5 本章小結 134
第9章 深挖服務發現 135
9.1 快速入門 136
9.2 服務註冊 136
9.2.1 Service後端 138
9.2.2 服務註冊小結 140
9.3 服務發現 140
9.3.1 使用集群DNS將名稱解析為IP地址 141
9.3.2 網絡“黑科技” 142
9.3.3 服務發現小結 143
9.4 服務發現和命名空間 144
服務發現示例 145
9.5 服務發現問題排查 150
9.6 本章小結 153
第 10章 Kubernetes存儲 154
10.1 概述 155
10.2 存儲提供商 157
10.3 容器存儲接口 157
10.4 Kubernetes持久卷子系統 158
10.5 使用存儲類進行動態置備 159
10.5.1 存儲類YAML 160
10.5.2 多個存儲類 161
10.5.3 部署和使用StorageClass對象 162
10.5.4 額外的卷配置 163
10.6 實戰 165
10.6.1 使用現有的存儲類 165
10.6.2 創建和使用新的存儲類 169
10.7 清理 171
10.8 本章小結 171
第 11章 ConfigMap和
Secret 172
11.1 概述 173
11.1.1 小例子 173
11.1.2 解耦的世界 174
11.2 ConfigMap原理 175
11.2.1 ConfigMap如何工作 176
11.2.2 ConfigMap和Kubernetes原生應用 177
11.3 ConfigMap實戰 178
11.3.1 命令式創建ConfigMap 178
11.3.2 查看ConfigMap 179
11.3.3 聲明式創建ConfigMap 180
11.3.4 將ConfigMap數據註入Pod和容器 182
11.4 Secret實戰 189
11.4.1 Kubernetes Secret是否安全? 189
11.4.2 創建Secret 190
11.4.3 在Pod中使用Secret 192
11.5 清理 193
11.6 本章小結 193
第 12章 StatefulSet 194
12.1 StatefulSet原理 195
12.1.1 StatefulSet Pod命名 196
12.1.2 有序創建和刪除 196
12.1.3 刪除StatefulSet 198
12.1.4 StatefulSet和卷 198
12.1.5 故障處理 199
12.1.6 網絡ID和headless Service 199
12.2 StatefulSet實戰 200
12.2.1 部署存儲類 201
12.2.2 創建headless Service 202
12.2.3 部署StatefulSet 203
12.2.4 測試對等發現 206
12.2.5 擴縮容StatefulSet 208
12.2.6 執行滾動更新 210
12.2.7 測試Pod故障 210
12.2.8 刪除StatefulSet 212
12.3 本章小結 212
第 13章 API安全和RBAC 213
13.1 API安全概覽 213
13.2 身份認證 214
檢查當前身份認證設置 215
13.3 鑒權 216
13.3.1 RBAC概覽 217
13.3.2 用戶和權限 218
13.3.3 深入探討規則 219
13.3.4 集群級別的用戶和權限 221
13.3.5 預創建的用戶和權限 222
13.3.6 鑒權總結 225
13.4 準入控制 225
13.5 本章小結 226
第 14章 Kubernetes API 227
14.1 Kubernetes API概覽 228
14.1.1 JSON序列化 228
14.1.2 API類比 229
14.2 API Server 231
14.2.1 關於REST和RESTful 233
14.2.2 關於CRUD 235
14.3 API 237
14.3.1 核心API組 238
14.3.2 命名API組 239
14.3.3 關於訪問API的一些話 241
14.3.4 alpha版、beta版和穩定版 243
14.3.5 資源棄用 245
14.3.6 資源、對象和原語 245
14.3.7 擴展API 246
14.4 本章小結 250
第 15章 Kubernetes威脅建模 252
15.1 威脅建模 252
15.2 偽裝 253
15.2.1 保護與API Server的通信 253
15.2.2 確保Pod通信安全 254
15.3 篡改 255
15.3.1 篡改Kubernetes組件 256
15.3.2 篡改運行在Kubernetes上的應用 257
15.4 抵賴 257
15.5 信息泄露 259
15.5.1 保護集群數據 260
15.5.2 保護Pod中的數據 260
15.6 拒絕服務 261
15.6.1 保護集群資源免受DoS攻擊 261
15.6.2 保護API Server免受DoS攻擊 262
15.6.3 保護集群存儲免受DoS攻擊 263
15.6.4 保護應用組件免受DoS攻擊 263
15.7 權限提升 264
15.7.1 保護API Server 264
15.7.2 保護Pod 265
15.7.3 使用PSS和PSA實現容器安全性標準化 270
15.7.4 PSS 271
15.7.5 PSA 271
15.7.6 PSA示例 272
15.7.7 PSA的替代方案 276
15.7.8 走向更安全的Kubernetes 276
15.8 本章小結 277
第 16章 真實世界的Kubernetes安全 278
16.1 CI/CD管道 279
16.1.1 鏡像庫 279
16.1.2 使用已批準的基本鏡像 280
16.1.3 非標準基本鏡像 281
16.1.4 控制對鏡像的訪問 281
16.1.5 將鏡像從非生產環境移動到生產環境 282
16.1.6 漏洞掃描 282
16.1.7 配置即代碼 283
16.1.8 簽名容器鏡像 284
16.1.9 鏡像發布工作流 284
16.2 基礎設施和網絡 285
16.2.1 集群隔離 285
16.2.2 節點隔離 287
16.2.3 運行時隔離 288
16.2.4 網絡隔離 289
16.3 IAM 292
管理對集群節點的遠程SSH訪問 293
16.4 審計和安全監控 293
16.4.1 安全配置 294
16.4.2 容器和Pod生命周期事件 294
16.4.3 應用日誌 295
16.4.4 用戶執行的操作 295
16.4.5 管理日誌數據 295
16.4.6 將現有應用遷移到Kubernetes 295
16.5 真實世界的例子 296
16.6 本章小結 297
術語表 298