CKA/CKAD 應試教程:從 Docker 到 Kubernetes 完全攻略

段超飛

  • 出版商: 北京大學
  • 出版日期: 2024-08-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • 頁數: 376
  • 裝訂: 平裝
  • ISBN: 7301348398
  • ISBN-13: 9787301348390
  • 相關分類: DockerKubernetes
  • 下單後立即進貨 (約2週~3週)

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

商品描述

本書系統地介紹了Docker和Kubernetes的相關知識,可以幫助讀者快速瞭解並熟練配置Kubernetes。
本書共分為16章。首先介紹了Docker基礎和Docker進階;然後介紹了Kubernetes的基礎操作,
包括部署Kubernetes集群、升級Kubernetes、創建及管理Pod等;
之後重點介紹了存儲管理、密碼管理、Deployment、DaemonSet及其他控制器、探針、Job、服務管理、
網絡管理、包管理Helm3及安全管理等;最後通過一個綜合實驗DevOps,全面複習本書所有內容。
本書適合想系統學習Docker和Kubernetes,以及希望通過CKA和CKAD考試的讀者學習使用。
此外,本書中的許多案例還可以直接應用於生產環境。

目錄大綱

第1章 Docker基礎1

1.1 容器介紹及環境準備1

1.2 安裝並配置Docker(在vms100上)3

1.2.1 安裝docker-ce4

1.2.2 解決鏡像下載慢的問題4

1.2.3 了解Docker的架構5

1.3 安裝並設定Containerd(在vms101上)6

1.3.1 安裝Containerd7

1.3.2 安裝Containerd客戶端nerdctl8

1.4 鏡像的管理10

1.4.1 鏡像的命名11

1.4.2 對鏡像重新做標籤11

1.4.3 刪除鏡像12

1.4.4 檢視鏡像的層結構13

1.4.5 導出鏡像13

1.4.6 導入鏡像15

1.5 容器的管理16

1.5.1 建立容器16

1.5.2 容器的生命週期17

1.5.3 建立臨時容器20

1.5.4 容器裡運行的指令20

1.5.5 建立容器時使用變數21

1.5.6 把容器的連接埠映射到實體機上22

1.6 實戰練-創建MySQL容器24

1.7 管理容器的命令25

1.7.1 在容器裡執行 的指令25

1.7.2 實體機和容器互相拷貝文件26

1.7.3 關閉、啟動、重新啟動容器27

1.7.4 查看容器裡的輸出28

1.8 資料卷的使用29

1.9 Docker網路32

1.9.1 了解Docker網路32

1.9.2 建立Docker網路33

1.10 容器互聯35

1.10.1 方法1:透過容器IP的方式存取35

1.10.2 方法2:使用link的方式36

模擬考題38

第2章 Docker進40

2.1 自訂鏡像40

2.2 使用Harbor搭建私有倉庫48

2.2.1 安裝Compose49

2.2.2 安裝Harbor49

2.2.3 推送鏡像53

2.2.4 拉取鏡像55

模擬考題57

第3章 署Kubernetes集群58

3.1 Kubernetes架構及元件介紹58

3.2 安裝Kubernetes叢集61

3.2.1 實驗拓樸圖及環境61

3.2.2 實驗準備62

3.2.3 在Master上執行初始化64

3.2.4 配置Worker加入叢集65

3.2.5 安裝Calico網路66

3.3 安裝後的設定68

3.3.1 刪除節點及重新加入69

3.3.2 常見的一些指令70

3.4 設定metrics-server監控Pod及節點的負載71

3.5 命名空間namespace72

3.6 管理命名空間73

3.7 Etcd管理75

3.7.1 單節點Etcd基本配置75

3.7.2 多節點Etcd配置78

3.7.3 連接到Kubernetes裡的Etcd82

模擬考題83

第4章 升級Kubernetes84

4.1 升級步驟84

4.2 升級 台Master85

4.2.1 升級Kubeadm86

4.2.2 升級Kubernetes叢集裡Master上的各個元件88

4.2.3 升級Master上的Kubelet和Kubectl88

4.3 升級Worker89

模擬考題91

第5章 創建及管理Pod92

5.1 建立及刪除Pod93

5.1.1 創建Pod94

5.1.2 刪除Pod95

5.1.3 產生YAML檔案建立Pod95

5.1.4 在Pod裡使用變數103

5.1.5 在Pod裡 容器的連接埠104

5.1.6 Pod裡的上下文105

5.2 Pod的基本 作108

5.3 了解Pod的生命週期,雅地關閉Pod111

5.3.1 Pod的延期刪除111

5.3.2 Pod Hook(鉤子)113

5.4 初始化Pod115

5.4.1 了解初始化容器115

5.4.2 初始化容器的範例116

5.5 靜態Pod118

5.6 手動 Pod的運轉位置120

5.6.1 給節點設定標籤120

5.6.2 建立在定節點上執行的Pod123

5.6.3 Annotations設定125

5.7 節點的cordon與drain127

5.7.1 節點的cordon127

5.7.2 節點的drain130

5.8 節點Taint及Pod的Toleration132

5.8.1 給節點設定及刪除Taint133

5.8.2 為Pod配置Toleration136

模擬考題140

第6章 儲存管理142

6.1 emptyDir143

6.2 hostPath147

6.3 NFS儲存149

6.4 持久性儲存152

6.4.1 PV153

6.4.2 PVC155

6.4.3 storageClassName158

6.4.4 使用持久性儲存161

6.4.5 PV回收策略163

6.5 動態卷供應163

6.5.1 了解製備器和儲存類別163

6.5.2 利用NFS創建動態磁碟區供應164

6.5.3 署NFS製備器165

6.5.4 署StorageClass166

模擬考題169

第7章 密碼管理170

7.1 Secret170

7.1.1 創建Secret171

7.1.2 使用Secret177

7.2 ConfigMap182

7.2.1 建立ConfigMap182

7.2.2 使用ConfigMap185

模擬考題188

第8章 Deployment189

8.1 建立和刪除Deployment190

8.1.1 透過YAML檔案的方式建立Deployment190

8.1.2 Deployment健壯性測試192

8.2 修改Deployment副本數193

8.2.1 以命令列的方式修改193

8.2.2 透過編輯Deployment的方式修改194

8.2.3 以修改YAML檔案的方式修改195

8.3 水平自動更新HPA196

8.3.1 配置HPA197

8.3.2 測試HPA198

8.4 Deployment鏡像的升級及回滾201

8.4.1 鏡像的升級201

8.4.2 鏡像的回滾204

8.5 滾動升級205

模擬考題206

第9章 DaemonSet及其他控制器207

9.1 建立及刪除DaemonSet208

9.2 Pod所在位置210

9.3 其他控制器ReplicationController211

9.4 其他控制器ReplicaSet213

9.5 各控制器之間YAML檔的比較215

模擬考題216

第10章 探針217

10.1 Liveness Probe217

10.1.1 command探測方式218

10.1.2 httpGet探測方式221

10.1.3 tcpSocket偵測方式222

10.2 Readiness Probe224

模擬考題228

第11章 Job229

11.1 Job229

11.1.1 建立Job230

11.1.2 在Job中 參數232

11.2 CronJob237

模擬考題241

第12章 服務管理242

12.1 服務的基本管理243

12.1.1 環境準備243

12.1.2 創建SVC244

12.1.3 刪除SVC246

12.1.4 驗證SVC的負載平衡功能247

12.1.5 透過YAML檔案的方式建立SVC248

12.2 服務發現249

12.2.1 環境準備250

12.2.2 透過ClusterIP的方式存取251

12.2.3 透過變數的方式存取253

12.2.4 透過DNS的方式存取255

12.3 服務發布258

12.3.1 NodePort258

12.3.2 LoadBalancer259

12.3.3 Ingress262

模擬考題267

第13章 網路管理268

13.1 實驗準備268

13.2 建立ingress類型的網路策略272

13.2.1 允許定標籤的Pod存取272

13.2.2 允許定網段的客戶端存取276

13.2.3 允許定命名空間裡的Pod存取280

13.2.4 允許定命名空間裡定的Pod存取282

13.3 建立egress類型的網路策略284

13.4 預設的策略288

模擬考題289

第14章 管理Helm3291

14.1 安裝Helm291

14.2 倉庫管理293

14.3 署一個簡單的MySQL應用294

14.4 搭建私有源298

14.5 實戰演示301

第15章 管理309

15.1 建立Kubeconfig檔312

15.2 Kubernetes的授權314

15.2.1 Role和RoleBinding315

15.2.2 ClusterRole和ClusterRoleBinding326

15.2.3 ServiceAccount329

15.3 安裝Dashboard333

15.4 資源限制337

15.4.1 透過Pod裡的resources字段來限制337

15.4.2 透過LimitRange來限制340

15.4.3 透過ResourceQuota來限制343

模擬考題344

第16章 DevOps345

16.1 實驗拓樸346

16.2 準備vms33並搭建倉庫346

16.3 安裝GitLab並配置347

16.4 安裝Jenkins352

16.5 安裝Docker件356

16.6 Jenkins的設定358

16.7 拷貝Kubeconfig檔359

16.8 建立專案361

16.9 配置GitLab和Jenkins的連動364

16.10 驗證CI/CD365