Kubernetes 修煉手冊
內容描述
本書是一本Kubernetes入門圖書,共分為12章,涵蓋了Kubernetes的基礎知識,並附帶了大量的配置案例。此外,還介紹了Kubernetes架構、構建Kubernetes集群、在Kubernetes上部署和管理應用程序、Kubernetes安全,以及雲本地、微服務、容器化等術語的含義。本書在內容上不斷進行充實和完善,可以幫助讀者快速入門Kubernetes。
本書適合系統管理員、開發人員,以及對Kubernetes感興趣的初學者閱讀。
目錄大綱
第1章初識Kubernetes 1
1.1 Kubernetes的背景1
1.1.1編排器1
1.1.2容器化應用1
1.1.3雲原生應用2
1.1.4微服務應用2
1 .2 Kubernetes的誕生3
1.2.1 Kubernetes和Docker 3
1.2.2 Kubernetes與Docker Swarm對比4
1.2.3 Kubernetes和Borg:抵抗是徒勞的5
1.2.4 Kubernetes—名字從何而來5
1.3雲操作系統6
1.3.1雲的規模6
1.3.2應用的調度7
1.3.3一個簡單的模擬7
1.4總結7
第2章Kubernetes操作概覽9
2.1 Kubernetes概覽9
2.1.1作為集群的Kubernetes 9
2.1.2作為編排器的Kubernetes 10
2.1.3 Kubernetes是如何工作的11
2.2主節點與工作節點12
2.2 .1主節點(控制平面) 12
2.2.2工作節點15
2.3 Kubernetes DNS 17
2.4 Kubernetes的應用打包17
2.5聲明式模型與期望狀態18
2.6 Pod 20
2.6.1 Pod與容器20
2.6.2 Pod深度剖析21
2.6.3調度單元22
2.6.4原子操作單位22
2.6.5 Pod的生命週期22
2.7 Deployment 23
2.8服務與穩定的網絡23
2.9總結26
第3章安裝Kubernetes 27
3.1 Kubernetes練習環境27
3.2託管的Kubernetes環境27
3.3自定義Kubernetes集群28
3.4安裝Kubernetes 28
3.5 Play with Kubernetes 28
3.6桌面版Docker 31
3.7 Google Kubernetes引擎(GKE) 32
3.8其他安裝方法34
3.9 kubectl 34
3.10總結36
第4章Pod的使用37
4.1 Pod原理37
4.1.1 Pod和容器38
4.1.2多容器Pod:典型示例38
4.1.3如何部署Pod 39
4. 1.4 “解剖”Pod 40
4.1.5 Pod與共享網絡40
4.1.6 Pod與CGroup 42
4.1.7 Pod的原子部署42
4.1.8 Pod的生命週期42
4.1.9小結43
4.2 Pod實戰43
4.2.1 Pod清單文件44
4.2.2清單文件:共情即代碼45
4.2.3基於清單文件部署Pod 46
4.2.4查看運行中的Pod 46
4.2.5 kubectl describe 48
4.2.6 kubectl exec:在Pod中執行命令49
4.2.7 kubectl logs 50
4.3總結50
第5章Kubernetes Deployment 51
5.1 Deployment原理51
5.1.1自愈和擴縮容52
5.1.2使用Deployment進行滾動升級54
5.1.3回滾56
5.2如何創建一個Deployment 56
5.2.1查看Deployment 58
5.2.2訪問該應用59
5.3執行滾動升級60
5.4執行回滾操作63
5.5總結64
第6章Kubernetes Service 65
6.1要點前瞻65
6.2原理66
6.2.1 Label與松耦合67
6.2.2 Service和Endpoint對象69
6.2.3從集群內部訪問Service 70
6.2.4從集群外部訪問Service 70
6.2.5服務發現72
6.2.6小結72
6.3 Service實戰73
6.3.1命令式73
6.3.2聲明式76
6.4實例79
6.5總結81
第7章服務發現82
7.1快速入門82
7.2服務註冊83
7.2.1服務後端85
7.2.2小結86
7.3服務發現86
7.3.1使用集群DNS將名稱解析為IP地址87
7.3.2網絡“黑科技” 88
7.3.3小結89
7.4服務發現與命名空間90
7.5服務發現問題排查96
7.6總結98
第8章Kubernetes存儲99
8.1概述99
8.2存儲提供者101
8.3容器存儲接口(CSI) 101
8.4 Kubernetes持久化卷子系統101
8.5存儲類和動態置備107
8.5.1存儲類YAML 108
8.5.2多個存儲類109
8.5.3實現存儲類109
8.6示例111
8.6.1清理111
8.6.2創建一個存儲類112
8.6.3創建一個PVC 113
8.6.4清理114
8.6.5使用默認的StorageClass 115
8.7總結115
第9章ConfigMap 116
9.1概述116
9.1.1簡單的例子117
9.1.2例子分析117
9.1.3解耦的世界117
9.2 ConfigMap原理118
9.2.1 ConfigMap如何工作119
9.2.2 ConfigMap與Kubernetes原生應用120
9.3 ConfigMap實戰120
9.3.1命令式創建ConfigMap 120
9.3.2查看ConfigMap 122
9.3.3聲明式創建ConfigMap 123
9.3.4將ConfigMap數據注入Pod和容器125
9.4總結129
第10章StatefulSet 130
10.1 StatefulSet原理130
10.1.1 StatefulSet中Pod的命名131
10.1.2按序創建和刪除132
10.1.3刪除StatefulSet 133
10.1.4卷133
10.1.5故障處理134
10.1.6網絡ID和headless Service 134
10.2 StatefulSet實戰135
10.2.1部署StorageClass 135
10.2.2創建一個governing headless Service 136
10.2.3部署StatefulSet 137
10.2.4測試點對點發現140
10. 2.5 StatefulSet擴縮容141
10.2.6執行滾動升級143
10.2.7模擬Pod故障143
10.2.8刪除StatefulSet 145
10.3總結145
第11章安全模型分析146
11.1安全模型146
11.2偽裝146
11.2.1與API Server的安全通信147
11.2.2 Pod間的安全通信147
11.3篡改149
11.3.1對Kubernetes組件的篡改149
11.3. 2對運行在Kubernetes中的應用的篡改150
11.4抵賴151
11.5信息洩露153
11.5.1保護集群數據153
11.5.2保護Pod中的數據153
11.6拒絕服務154
11.6.1保護集群資源免於DoS攻擊154
11.6.2保護API Server防範DoS攻擊155
11.6.3保護集群存儲防範DoS攻擊155
11.6.4保護應用組件防範DoS攻擊156
11.7提升權限157
11.7.1保護API Server 157
11.7.2保護Pod 158
11.8 Pod安全策略162
11.9 Kubernetes安全展望164
11.10總結164
第12章現實中Kubernetes的安全性165
12.1 CI/CD流水線165
12.1. 1鏡像倉庫165
12.1.2使用已驗證的基礎鏡像166
12.1.3非標準基礎鏡像167
12.1.4控製鏡像的訪問權限167
12.1.5從非生產庫複製鏡像到生產庫168
12.1.6漏洞掃描168
12.1.7配置即代碼169
12.1.8鏡像簽名169
12.1.9鏡像晉升工作流170
12.2基礎設施與網絡170
12.2.1集群層負載隔離170
12.2.2節點隔離172
12.2.3運行時隔離172
12.2.4網絡隔離173
12.3身份認證與訪問控制管理(IAM) 176
12.4審計與安全監控177
12.4.1安全配置177
12.4.2容器與Pod的生命週期事件178
12.4.3應用的日誌178
12.4.4用戶執行的操作178
12.4.5管理日誌數據179
12.4.6遷移現有App到Kubernetes 179
12.5現實例子179
12.6總結180
術語表181
延伸184
作者介紹
奈吉爾.波爾頓(Nigel Poulton),亞馬遜暢銷圖書作者,存儲專家,Docker技術先驅。
奈吉爾有豐富的運維技術經驗,著有多部容器相關的圖書,並開設了視頻培訓課程,在業界有非常大的影響力。