Kubernetes零基礎實戰

羅劍鋒

  • 出版商: 人民郵電
  • 出版日期: 2024-04-01
  • 定價: $419
  • 售價: 8.5$356
  • 語言: 簡體中文
  • 頁數: 260
  • ISBN: 7115635935
  • ISBN-13: 9787115635938
  • 相關分類: Kubernetes
  • 下單後立即進貨 (約4週~6週)

  • Kubernetes零基礎實戰-preview-1
  • Kubernetes零基礎實戰-preview-2
Kubernetes零基礎實戰-preview-1

買這商品的人也買了...

相關主題

商品描述

本書從初學者的角度出發,以實戰為導向,幫助讀者快速掌握Kubernetes的核心知識,並在實踐中用好Kubernetes。本書共7章。第1章介紹如何搭建一個易上手的Kubernetes實驗環境;第2章以Docker為例介紹容器、鏡像、鏡像倉庫等概念和運行原理;第3章介紹容器編排概念,並搭建Minikube的單機環境和kubeadm的集群環境;第4章先講解Kubernetes的運行機制和YAML語言,再介紹Pod、Job、CronJob、ConfigMap和Secret對象;第5章講解Kubernetes中的重要對象,包括Deployment、DaemonSet、Service、Ingress、PersistentVolume、StatefulSet等;第6章介紹Kubernetes的高級運維管理知識,包括滾動更新、狀態探針、資源配額管理、集群資源監控、網絡插件等;第7章介紹Kubernetes的學習經驗和建議。

作者簡介

罗剑锋,网名“Chrono”,Nginx/OpenResty开源项目贡献者,极客时间“Kubernetes入门实战课”“透视HTTP协议”等专栏的作者。目前在Kong公司担任高级工程师,从事Kong Gateway、Kong IngressController等项目的开发工作。著有《C++实战笔记》《Nginx完全开发指南》《OpenResty完全开发指南》等。

目錄大綱

第1章 Kubernetes基本環境搭建 1

1.1 本地主機 1

1.2 虛擬機軟件 2

1.3 Linux發行版 2

1.4 創建虛擬機 3

1.5 安裝操作系統 4

1.6 常用的Linux操作 5

1.7 小結 6

第2章 Kubernetes底層基礎:容器技術 7

2.1 認識Docker 7

2.1.1 Docker的誕生 7

2.1.2 Docker的形態 8

2.1.3 Docker的安裝 9

2.1.4 Docker Engine的架構 10

2.1.5 Docker的基本用法 12

2.1.6 小結 13

2.2 理解容器的本質 13

2.2.1 容器究竟是什麽 14

2.2.2 為什麽要隔離 15

2.2.3 容器與虛擬機的區別 16

2.2.4 隔離是怎麽實現的 17

2.2.5 小結 18

2.3 容器化的應用 18

2.3.1 容器與鏡像 19

2.3.2 常用的鏡像操作命令 20

2.3.3 常用的容器操作命令 21

2.3.4 小結 23

2.4 創建應用鏡像 24

2.4.1 鏡像內部機制 24

2.4.2 什麽是Dockerfile 26

2.4.3 編寫Dockerfile 27

2.4.4 鏡像構建工流程 29

2.4.5 小結 30

2.5 鏡像倉庫 31

2.5.1 什麽是Docker Hub 31

2.5.2 在Docker Hub上挑選鏡像 32

2.5.3 Docker Hub鏡像的命名規則 34

2.5.4 向Docker Hub上傳鏡像 37

2.5.5 離線環境使用Docker Hub 38

2.5.6 小結 38

2.6 容器與外界的通信 39

2.6.1 容器內外的文件拷貝 39

2.6.2 共享宿主機的文件 40

2.6.3 網絡互聯互通 41

2.6.4 小結 44

2.7 實戰演練 44

2.7.1 要點回顧 45

2.7.2 私有鏡像倉庫 46

2.7.3 WordPress網站 47

2.7.4 小結 51

第3章 Kubernetes實驗環境搭建 52

3.1 認識Kubernetes 52

3.1.1 什麽是容器編排 52

3.1.2 什麽是Kubernetes 53

3.1.3 小結 54

3.2 使用Minikube 54

3.2.1 什麽是Minikube 54

3.2.2 安裝Minikube 55

3.2.3 運行Minikube 56

3.2.4 小結 58

3.3 使用kubeadm 59

3.3.1 什麽是kubeadm 59

3.3.2 集群架構 60

3.3.3 準備工作 61

3.3.4 安裝kubeadm 62

3.3.5 安裝控制面節點 63

3.3.6 安裝網絡插件 65

3.3.7 安裝數據面節點 65

3.3.8 安裝操作台節點 66

3.3.9 小結 66

第4章 Kubernetes運行機制和基本API對象 67

4.1 Kubernetes工作機制 67

4.1.1 雲時代的操作系統 67

4.1.2 總體架構 68

4.1.3 控制面 70

4.1.4 數據面 70

4.1.5 工作流程 71

4.1.6 擴展 71

4.1.7 小結 73

4.2 工作語言YAML 73

4.2.1 聲明式與命令式 73

4.2.2 什麽是YAML 74

4.2.3 什麽是API對象 76

4.2.4 用YAML描述API對象 78

4.2.5 編寫YAML的技巧 79

4.2.6 小結 81

4.3 核心概念Pod 81

4.3.1 為什麽要有Pod 82

4.3.2 為什麽Pod是核心概念 82

4.3.3 用YAML描述Pod 83

4.3.4 用kubectl操作Pod 85

4.3.5 小結 87

4.4 離線業務Job和CronJob 88

4.4.1 為什麽不直接使用Pod 88

4.4.2 為什麽要有Job和CronJob 89

4.4.3 用YAML描述Job和CronJob 90

4.4.4 用kubectl操作Job 91

4.4.5 用kubectl操作CronJob 94

4.4.6 小結 96

4.5 配置信息ConfigMap和Secret 96

4.5.1 什麽是ConfigMap 97

4.5.2 什麽是Secret 98

4.5.3 加載為環境變量 100

4.5.4 加載為文件 103

4.5.5 小結 106

4.6 實戰演練 106

4.6.1 要點回顧 106

4.6.2 搭建WordPress網站 108

4.6.3 小結 113

第5章 Kubernetes業務應用API對象 114

5.1 永不宕機的Deployment 114

5.1.1 為什麽要有Deployment 114

5.1.2 用YAML描述Deployment 115

5.1.3 Deployment的關鍵字段 116

5.1.4 用kubectl操作Deployment 118

5.1.5 小結 120

5.2 忠實可靠的看門狗DaemonSet 121

5.2.1 為什麽要有DaemonSet 121

5.2.2 用YAML描述DaemonSet 122

5.2.3 用kubectl操作DaemonSet 124

5.2.4 污點和容忍度 124

5.2.5 靜態Pod 126

5.2.6 小結 127

5.3 微服務必需的Service 127

5.3.1 為什麽要有Service 127

5.3.2 用YAML描述Service 128

5.3.3 用kubectl操作Service 130

5.3.4 以域名的方式訪問Service 133

5.3.5 在集群外暴露Service 135

5.3.6 小結 136

5.4 管理集群出入流量的Ingress 137

5.4.1 為什麽要有Ingress 137

5.4.2 為什麽要有Ingress Controller 138

5.4.3 為什麽要有Ingress Class 139

5.4.4 用YAML描述Ingress和Ingress Class 140

5.4.5 用kubectl操作Ingress和Ingress Class 142

5.4.6 使用Nginx Ingress Controller 143

5.4.7 使用Kong Ingress Controller 146

5.4.8 擴展Kong Ingress Controller 150

5.4.9 小結 153

5.5 數據持久化PersistentVolume 154

5.5.1 什麽是PersistentVolume 155

5.5.2 什麽是PersistentVolumeClaim和StorageClass 155

5.5.3 用YAML描述PersistentVolume 156

5.5.4 用YAML描述PersistentVolumeClaim 158

5.5.5 在Pod里使用PersistentVolume 158

5.5.6 在Pod里使用靜態網絡存儲 161

5.5.7 在Pod里使用動態網絡存儲 164

5.5.8 小結 167

5.6 有狀態的應用StatefulSet 168

5.6.1 什麽是有狀態的應用 168

5.6.2 用YAML描述StatefulSet 169

5.6.3 用kubectl操作StatefulSet 170

5.6.4 StatefulSet的數據持久化 173

5.6.5 小結 175

5.7 實戰演練 176

5.7.1 要點回顧 176

5.7.2 使用Deployment搭建WordPress網站 178

5.7.3 使用StatefulSet優化WordPress網站的設計 185

5.7.4 小結 187

第6章 Kubernetes運維、監控和管理 188

6.1 應用滾動更新 188

6.1.1 應用的版本更新 188

6.1.2 應用版本更新的過程 190

6.1.3 管理更新 193

6.1.4 更新描述 195

6.1.5 小結 196

6.2 容器狀態探針 197

6.2.1 探針的種類 197

6.2.2 使用探針 199

6.2.3 小結 201

6.3 容器資源配額管理 202

6.3.1 申請資源配額 202

6.3.2 處理策略 203

6.3.3 小結 204

6.4 集群資源配額管理 204

6.4.1 什麽是名字空間 204

6.4.2 如何使用名字空間 205

6.4.3 設置資源配額 206

6.4.4 使用資源配額 208

6.4.5 默認資源配額 210

6.4.6 小結 212

6.5 集群資源監控 212

6.5.1 使用Metrics Server 212

6.5.2 水平自動伸縮 214

6.5.3 使用Prometheus 217

6.5.4 小結 221

6.6 集群網絡插件 222

6.6.1 網絡模型 222

6.6.2 什麽是CNI 223

6.6.3 CNI的工作原理 224

6.6.4 使用Calico插件 227

6.6.5 小結 229

6.7 實戰演練 230

6.7.1 要點回顧 230

6.7.2 部署Dashboard 231

6.7.3 小結 237

第7章 結束語 238

7.1 學習經驗分享 238

7.2 學習方式建議 239

7.3 臨別感言 240

附錄A Kubernetes棄用Docker 241

A.1 CRI 241

A.2 Containerd 242

A.3 正式棄用Docker 243

A.4 Docker的未來 245

附錄B docker-compose 246

B.1 什麽是docker-compose 246

B.2 搭建私有鏡像倉庫 247

B.3 搭建WordPress網站 250

B.4 小結 253

附錄C Harbor 254

C.1 什麽是Harbor 254

C.2 安裝Harbor 254

C.3 使用Harbor 256

附錄D NFS網絡存儲服務 258

D.1 安裝NFS服務端 258

D.2 安裝NFS客戶端 259

D.3 驗證NFS存儲 259

D.4 安裝NFS Provisioner 260