Docker 與 Kubernetes 容器運維實戰

王啟明 肖志健

  • 出版商: 清華大學
  • 出版日期: 2023-09-01
  • 定價: $479
  • 售價: 8.5$407
  • 語言: 簡體中文
  • 頁數: 324
  • 裝訂: 平裝
  • ISBN: 7302644357
  • ISBN-13: 9787302644354
  • 相關分類: DockerKubernetes
  • 下單後立即進貨 (約4週~6週)

  • Docker 與 Kubernetes 容器運維實戰-preview-1
  • Docker 與 Kubernetes 容器運維實戰-preview-2
  • Docker 與 Kubernetes 容器運維實戰-preview-3
Docker 與 Kubernetes 容器運維實戰-preview-1

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

商品描述

隨著雲計算和容器技術的發展,Docker與Kubernetes已經成為各個企業**的部署工具,使用它們可以提高系統的部署效率和運維能力,降低運維成本。本書是一本為初學者量身定製的Docker與Kubernetes容器技術入門書,要求讀者具有Linux基礎。 《Docker與Kubernetes容器運維實戰》共22章,第1~11章主要內容包括全面認識Docker、初步體驗Docker、Docker基本管理、Docker的倉庫、Docker數據管理、Dockerfile、Docker日誌、Docker Compose、Docker Swarm、Docker Portainer、Docker 實戰應用;第12~22章主要內容包括Kubernetes初步入門、安裝Kubernetes、Kubernetes命令行工具、運行應用、通過服務訪問應用、存儲管理、Kubernetes軟件包管理、Kubernetes網絡管理、Kubernetes Dashboard、Kubernetes安全、Kubernetes集群管理。 《Docker與Kubernetes容器運維實戰》內容詳盡、示例豐富,是廣大Docker與Kubernetes入門讀者的必備參考書,同時也非常適合作為高等院校或高職、高專電腦及相關專業的教材使用。

目錄大綱

目    錄

 

第1章  全面認識Docker 1

1.1  容器技術 1

1.1.1  什麽是容器 2

1.1.2  容器與虛擬機之間的區別 3

1.1.3  容器究竟解決了什麽問題 4

1.1.4  容器的優點 5

1.1.5  容器的缺點 5

1.1.6  容器的分類 6

1.2  Docker技術 7

1.2.1  什麽是Docker 7

1.2.2  Docker的由來 8

1.2.3  Docker究竟是什麽 8

1.3  Docker的架構與組成 9

1.3.1  Docker的架構 9

1.3.2  Docker中應用系統的存在

形式 11

1.4  為什麽使用Docker 11

1.4.1  Docker的應用場景 11

1.4.2  Docker可以解決哪些問題 12

1.4.3  Docker的應用成本 12

1.5  Docker和Podman 12

1.5.1  Podman 13

1.5.2  Docker和Podman的比較 13

第2章  初步體驗Docker 15

2.1  在Windows中安裝Docker 15

2.1.1  通過Boot2Docker

體驗Docker 15

2.1.2  通過Docker Desktop

體驗Docker 21

2.1.3  搭建第一個Docker應用:

Hello world 28

2.2  在Ubuntu中安裝Docker 30

2.2.1  通過Ubuntu倉庫

安裝Docker 30

2.2.2  通過Docker倉庫

安裝Docker 32

2.2.3  通過軟件包安裝Docker 33

2.2.4  測試安裝的結果 33

第3章  Docker基本管理 35

3.1  鏡像管理 35

3.1.1  查找鏡像 35

3.1.2  下載鏡像 36

3.1.3  列出本地鏡像 37

3.1.4  刪除鏡像 37

3.1.5  查看鏡像 37

3.1.6  構建鏡像 40

3.1.7  鏡像標簽管理 42

3.2  容器管理 43

3.2.1  創建容器 43

3.2.2  查看容器 45

3.2.3  啟動容器 46

3.2.4  停止容器 46

3.2.5  刪除容器 47

3.3  網絡管理 47

3.3.1  Docker網絡原理 47

3.3.2  網絡模式 49

3.3.3  Docker容器的互聯 50

3.3.4  容器與外部網絡的互聯 52

第4章  Docker的倉庫 54

4.1  公共鏡像市場 54

4.1.1  什麽是Docker Hub 54

4.1.2  Docker Hub的特點 54

4.1.3  使用Docker Hub 55

4.2  第三方鏡像市場 57

4.2.1  公有鏡像中心(加速器) 57

4.2.2  私有鏡像中心 58

4.3  私有倉庫 59

4.3.1  創建私有倉庫 59

4.3.2  使用私有倉庫 60

第5章  Docker數據管理 63

5.1  數據捲 63

5.1.1  什麽是數據捲 63

5.1.2  創建數據捲 64

5.1.3  不同類型的數據捲 64

5.2  數據捲容器 67

5.2.1  新建數據捲容器 67

5.2.2  共享數據捲容器 67

5.3  數據遷移 67

5.3.1  備份 68

5.3.2  恢復 68

第6章  Dockerfile 69

6.1  文件結構說明 69

6.1.1  Dockfile的簡單格式 69

6.1.2  提示解釋器 70

6.1.3  環境變量替換 71

6.2  指令簡介 71

6.2.1  FROM 72

6.2.2  ARG 72

6.2.3  RUN 73

6.2.4  CMD 77

6.2.5  LABEL 78

6.2.6  EXPOSE 79

6.2.7  ENV 79

6.2.8  ADD 80

6.2.9  COPY 81

6.2.10  ENTRYPOINT 81

6.2.11  VOLUME 86

6.2.12  USER 87

6.2.13  WORKDIR 87

6.2.14  ONBUILD 88

6.2.15  STOPSIGNAL 89

6.2.16  HEALTHCHECK 89

6.2.17  SHELL 90

6.3  創建鏡像 92

6.3.1  命令詳解 92

6.3.2  .dockerignore文件 92

6.3.3  最佳實踐 93

第7章  Docker日誌 98

7.1  docker logs 98

7.2  logging driver 99

7.3  ELK 100

7.3.1  概述 101

7.3.2  安裝ELK 101

7.3.3  Filebeat配置 103

7.3.4  Kibana配置 105

第8章  Docker Compose 107

8.1  簡介 107

8.1.1  主要功能 108

8.1.2  常見用例 108

8.2  安裝Compose 109

8.2.1  Docker Desktop 109

8.2.2  安裝Compose Plugin 109

8.2.3  獨立安裝Compose 110

8.3  使用Compose部署 110

8.3.1  先決條件 111

8.3.2  步驟1:定義應用程序

依賴項 111

8.3.3  步驟2:創建Dockerfile 112

8.3.4  步驟3:在撰寫文件中定義

服務 112

8.3.5  步驟4:使用Compose生成並

運行應用 113

8.3.6  步驟5:編輯Compose文件以

添加Volume 114

8.3.7  步驟6:使用Compose重新

生成並運行應用 114

8.3.8  步驟7:更新應用程序 115

8.3.9  步驟8:嘗試使用其他命令 115

8.4  使用Compose命令 116

第9章  Docker Swarm 118

9.1  基本概念 118

9.1.1  簡介 118

9.1.2  關鍵概念 120

9.2  使用Swarm 121

9.2.1  創建Swarm 121

9.2.2  添加Swarm節點 122

9.3  使用服務命令 123

9.3.1  部署一個服務 123

9.3.2  查看服務 124

9.3.3  擴展服務 124

9.3.4  刪除服務 125

9.3.5  應用滾動更新 126

第10章  Docker Portainer 129

10.1  簡介 129

10.2  安裝 130

10.3  常規操作 132

10.3.1  App模板 132

10.3.2  鏡像操作 133

10.3.3  容器操作 134

10.3.4  添加Docker鏡像倉庫 136

第11章  Docker實戰應用 138

11.1  OS Docker 138

11.1.1  BusyBox 138

11.1.2  Alphine 139

11.1.3  Ubuntu 139

11.1.4  CentOS 139

11.2  Web服務應用 140

11.2.1  Apache 140

11.2.2  Nginx 140

11.3  數據庫應用 141

 

11.3.1  MySQL 141

11.3.2  Redis 142

11.3.3  MongoDB 142

11.4  編程應用 143

11.4.1  Java 143

11.4.2  Python 143

第12章  Kubernetes初步入門 145

12.1  Kubernetes技術 145

12.1.1  什麽是Kubernetes 145

12.1.2  Kubernetes的發展歷史 145

12.1.3  為什麽使用Kubernetes 146

12.2  Kubernetes的重要概念 147

12.2.1  Cluster(集群) 147

12.2.2  Master(控制節點) 147

12.2.3  Node(工作節點) 148

12.2.4  Pod 149

12.2.5  服務 149

12.2.6  捲 150

12.2.7  命名空間 150

第13章  安裝Kubernetes 151

13.1  通過軟件包管理工具安裝

Kubernetes 151

13.1.1  軟件包管理工具 151

13.1.2  節點規劃 152

13.1.3  安裝前準備 153

13.1.4  Etcd集群配置 153

13.1.5  Master節點的配置 158

13.1.6  Node節點的配置 160

13.1.7  配置網絡 162

13.2  Kubeadm的使用方法 163

13.2.1  Kubeadm的安裝方法 164

13.2.2  Kubeadm的基本語法 165

13.2.3  基礎OS環境部署 165

13.2.4  部署Master節點 167

13.2.5  部署Node節點 167

13.2.6  部署CNI網絡 168

13.2.7  重置節點 168

 

第14章  Kubernetes命令行工具 169

14.1  kubectl用法概述 169

14.2  kubectl的子命令 171

14.3  Kubernetes資源對象類型 173

14.4  kubectl的輸出格式 173

14.5  kubectl命令舉例 174

第15章  運行應用 178

15.1  Deployment 178

15.1.1  什麽是Deployment 178

15.1.2  Deployment與ReplicaSet 179

15.1.3  運行Deployment 179

15.1.4  使用配置文件 185

15.1.5  擴容和縮容 189

15.1.6  故障轉移 191

15.1.7  通過標簽控制Pod的位置 193

15.1.8  刪除Deployment 195

15.1.9  DaemonSet 195

15.2  Job 197

15.2.1  什麽是Job 197

15.2.2  Job失敗處理 199

15.2.3  Job的並行執行 200

15.2.4  Job的定時執行 201

第16章  通過服務訪問應用 203

16.1  服務及其功能 203

16.1.1  服務的基本概念 203

16.1.2  服務的功能原理 204

16.2  管理服務 205

16.2.1  創建服務 205

16.2.2  查看服務 207

16.2.3  刪除服務 208

16.3  外部網絡訪問服務 209

16.3.1  kube-proxy結合ClusterIP 209

16.3.2  通過NodePort訪問服務 210

16.3.3  通過負載均衡訪問服務 212

16.4  通過CoreDNS訪問應用 212

16.4.1  CoreDNS簡介 213

16.4.2  安裝CoreDNS 213

第17章  存儲管理 220

17.1  存儲捲 220

17.1.1  什麽是存儲捲 220

17.1.2  emptyDir捲 221

17.1.3  hostPath捲 224

17.1.4  NFS捲 224

17.1.5  Secret捲 225

17.1.6  iSCSI捲 228

17.2  持久化存儲捲 229

17.2.1  什麽是持久化存儲捲 229

17.2.2  持久化存儲捲請求 229

17.2.3  持久化存儲捲的生命周期 230

17.2.4  持久化存儲捲靜態綁定 231

17.2.5  持久化存儲捲動態綁定 234

17.2.6  回收 238

第18章  Kubernetes軟件包管理 241

18.1  Helm 241

18.1.1  Helm相關概念 241

18.1.2  Tiller 242

18.1.3  Chart 242

18.1.4  Repository 242

18.1.5  Release 243

18.2  安裝Helm 243

18.2.1  安裝客戶端 243

18.2.2  安裝服務器端Tiller 245

18.3  Chart文件結構 247

18.4  使用Helm 247

18.4.1  軟件倉庫的管理 248

18.4.2  查找Chart 248

18.4.3  安裝Chart 250

18.4.4  查看已安裝的Chart 252

18.4.5  刪除Release 253

第19章  Kubernetes網絡管理 254

19.1  Kubernetes網絡基礎 254

19.1.1  Kubernetes網絡模型 254

19.1.2  命名空間 255

19.1.3  veth網絡接口 255

19.1.4  netfilter/iptables 256

19.1.5  網橋 256

19.1.6  路由 256

19.2  Kubernetes網絡實現 257

19.2.1  Docker與Kubernetes網絡比較 257

19.2.2  容器之間的通信 261

19.2.3  Pod之間的通信 262

19.2.4  Pod和服務之間的通信 265

19.3  Flannel 272

19.3.1  Flannel簡介 272

19.3.2  安裝Flannel 273

第20章  Kubernetes Dashboard 278

20.1  Kubernetes Dashboard配置文件 278

20.1.1  Kubernetes角色控制 278

20.1.2  kubernetes-dashboard.yaml 279

20.2  安裝Kubernetes Dashboard 284

20.2.1  官方安裝方法 284

20.2.2  自定義安裝方法 284

20.3  Dashboard的使用方法 287

20.3.1  Dashboard概況 287

20.3.2  通過Dashboard創建資源 289

第21章  Kubernetes安全 290

21.1  在集群級別應用Pod安全標準 290

21.1.1  正確選擇要應用的Pod安全標準 290

21.1.2  設置模式、版本和標準 292

21.1.3  清理 295

21.2  在命名空間級別應用Pod 295

21.2.1  創建集群 295

21.2.2  為命名空間啟用Pod安全標準檢查 296

21.2.3  驗證Pod安全標準 296

21.2.4  清理 297

21.3  使用AppArmor限制容器對資源的訪問 297

21.3.1  環境準備 297

21.3.2  保護Pod 298

21.4  使用Seccomp限制容器對資源的訪問 299

21.4.1  下載Seccomp配置文件示例 299

21.4.2  使用Kind創建本地Kubernetes集群 299

21.4.3  使用RuntimeDefault做負載均衡 300

21.4.4  創建使用容器運行時默認Seccomp配置文件的Pod 302

21.4.5  使用Seccomp配置文件創建

Pod以進行系統調用審計 302

第22章  Kubernetes集群管理 305

22.1  資源管理 305

22.1.1  組織資源配置 305

22.1.2  kubectl中的批量操作 306

22.1.3  有效地使用標簽 308

22.1.4  多標簽部署 309

22.1.5  更新標簽 310

22.1.6  更新註解 310

22.1.7  擴展應用 310

22.1.8  就地更新資源 311

22.1.9  破壞性地更新 312

22.1.10  在不中斷服務的情況下更新應用 312

22.2  日誌架構 312

22.2.1  Pod和容器日誌 313

22.2.2  集群日誌架構 314

22.3  系統組件指標 320

22.3.1  Kubernetes中組件的指標 320

22.3.2  指標生命周期 321

22.3.3  顯示隱藏指標 321

22.3.4  禁用加速器指標 322

22.3.5  組件指標 322

22.4  系統日誌 323

22.4.1  KLog 323

22.4.2  KLog輸出 324

寫在最後 325