Kubernetes修煉手冊(第2版)

奈吉爾·波爾頓(Nigel Poulton)

  • 出版商: 人民郵電
  • 出版日期: 2025-05-01
  • 售價: $539
  • 語言: 簡體中文
  • 頁數: 302
  • ISBN: 7115662339
  • ISBN-13: 9787115662330
  • 相關分類: Kubernetes
  • 下單後立即進貨 (約4週~6週)

  • Kubernetes修煉手冊(第2版)-preview-1
  • Kubernetes修煉手冊(第2版)-preview-2
Kubernetes修煉手冊(第2版)-preview-1

相關主題

商品描述

本書是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