Kubernetes 是容器編排引擎的事實標(biāo)準(zhǔn),是繼大數(shù)據(jù)、云計算和 Docker 之后又一熱門技術(shù),而且未來相當(dāng)一段時間內(nèi)都會非常流行。對于IT行業(yè)來說,這是一項非常有價值的技術(shù)。對于IT從業(yè)者來說,掌握容器技術(shù)既是市場的需要,也是提升自我價值的重要途徑。
《每天5分鐘玩轉(zhuǎn)Kubernetes》共15章,系統(tǒng)介紹了 Kubernetes 的架構(gòu)、重要概念、安裝部署方法、運行管理應(yīng)用的技術(shù)、網(wǎng)絡(luò)存儲管理、集群監(jiān)控和日志管理等重要內(nèi)容。書中通過大量實操案例深入淺出地講解 Kubernetes 核心技術(shù),是一本從入門到進(jìn)階的實用Kubernetes 操作指導(dǎo)手冊。讀者在學(xué)習(xí)的過程中,可以跟著教程進(jìn)行操作,在實踐中掌握 Kubernetes 的核心技能。在之后的工作中,則可以將本教程作為參考書,按需查找相關(guān)知識點。
《每天5分鐘玩轉(zhuǎn) Kubernetes》主要面向微服務(wù)軟件開發(fā)人員,以及 IT 實施和運維工程師等相關(guān)人員,也適合作為高等院校和培訓(xùn)學(xué)校相關(guān)專業(yè)的教學(xué)參考書。
目 錄
第1章 先把 Kubernetes跑起來 1
1.1 先跑起來 1
1.2 創(chuàng)建 Kubernetes集群 2
1.3 部署應(yīng)用 4
1.4 訪問應(yīng)用 5
1.5 Scale 應(yīng)用 6
1.6 滾動更新 7
1.7 小結(jié) 8
第2章 重要概念 9
第3章 部署 KubernetesCluster 13
3.1 安裝 Docker 14
3.2 安裝 kubelet、kubeadm 和 kubectl 14
3.3 用 kubeadm 創(chuàng)建 Cluster 14
3.3.1 初始化Master 14
3.3.2 配置 kubectl 16
3.3.3 安裝Pod網(wǎng)絡(luò) 16
3.3.4 添加 k8s-node1 和 k8s-node2 16
3.4 小結(jié) 18
第4章 Kubernetes 架構(gòu) 19
4.1 Master 節(jié)點 19
4.2 Node 節(jié)點 20
4.3 完整的架構(gòu)圖 21
4.4 用例子把它們串起來 22
4.5 小結(jié) 24
第5章 運行應(yīng)用 25
5.1 Deployment 25
5.1.1 運行Deployment 25
5.1.2 命令 vs 配置文件 29
5.1.3 Deployment 配置文件簡介 30
5.1.4 伸縮 31
5.1.5 Failover 33
5.1.6 用label 控制 Pod 的位置 33
5.2 DaemonSet 36
5.2.1 kube-flannel-ds 36
5.2.2 kube-proxy 37
5.2.3 運行自己的 DaemonSet 38
5.3 Job 40
5.3.1 Pod 失敗的情況 41
5.3.2 Job 的并行性 43
5.3.3 定時 Job 45
5.4 小結(jié) 48
第6章 通過 Service 訪問 Pod 49
6.1 創(chuàng)建 Service 49
6.2 Cluster IP 底層實現(xiàn) 51
6.3 DNS 訪問 Service 53
6.4 外網(wǎng)如何訪問Service 55
6.5 小結(jié) 58
第7章 Rolling Update 59
7.1 實踐 59
7.2 回滾 61
7.3 小結(jié) 63
第8章 Health Check 64
8.1 默認(rèn)的健康檢查 64
8.2 Liveness 探測 65
8.3 Readiness 探測 67
8.4 Health Check 在 Scale Up 中的應(yīng)用 69
8.5 Health Check 在滾動更新中的應(yīng)用 71
8.6 小結(jié) 75
第9章 數(shù)據(jù)管理 76
9.1 Volume 76
9.1.1 emptyDir 76
9.1.2 hostPath 78
9.1.3 外部 Storage Provider 79
9.2 PersistentVolume & PersistentVolumeClaim 81
9.2.1 NFS PersistentVolume 81
9.2.2 回收 PV 84
9.2.3 PV 動態(tài)供給 86
9.3 一個數(shù)據(jù)庫例子 87
9.4 小結(jié) 91
第10章 Secret & Configmap 92
10.1 創(chuàng)建 Secret 92
10.2 查看 Secret 93
10.3 在Pod中使用Secret 94
10.3.1 Volume 方式 94
10.3.2 環(huán)境變量方式 96
10.4 ConfigMap 97
10.5 小結(jié) 100
第11章 Helm—Kubernetes的包管理器 101
11.1 Why Helm 101
11.2 Helm 架構(gòu) 103
11.3 安裝 Helm 104
11.3.1 Helm 客戶端 104
11.3.2 Tiller服務(wù)器 105
11.4 使用Helm 106
11.5 chart 詳解 109
11.5.1 chart 目錄結(jié)構(gòu) 109
11.5.2 chart 模板 113
11.5.3 再次實踐 MySQL chart 115
11.5.4 升級和回滾 release 118
11.5.5 開發(fā)自己的 chart 119
11.6 小結(jié) 126
第12章 網(wǎng) 絡(luò) 127
12.1 Kubernetes 網(wǎng)絡(luò)模型 127
12.2 各種網(wǎng)絡(luò)方案 128
12.3 Network Policy 129
12.3.1 部署 Canal 129
12.3.2 實踐 Network Policy 130
12.4 小結(jié)135
第13章 Kubernetes Dashboard 136
13.1 安裝 136
13.2 配置登錄權(quán)限 137
13.3 Dashboard 界面結(jié)構(gòu) 139
13.4 典型使用場景 140
13.4.1 部署 Deployment 140
13.4.2 在線操作 141
13.4.3 查看資源詳細(xì)信息 142
13.4.4 查看 Pod 日志 142
13.5 小結(jié) 143
第14章 Kubernetes 集群監(jiān)控 144
14.1 Weave Scope 144
14.1.1 安裝 Scope 144
14.1.2 使用 Scope 145
14.2 Heapster 151
14.2.1 部署 151
14.2.2 使用 152
14.3 Prometheus Operator 155
14.3.1 Prometheus 架構(gòu) 159
14.3.2 Prometheus Operator 架構(gòu) 161
14.3.3 部署 Prometheus Operator 162
14.4 小結(jié) 167
第15章 Kubernetes 集群日志管理 168
15.1 部署 168
15.2 小結(jié) 173
寫在最后 174