第 1部分 Kubernetes基礎篇
第 1章 Kubernetes介紹 ......................................... 2
1.1為什麼會有 Kubernetes ................................................. 2
1.1.1雲計算大潮 . 2
1.1.2不溫不火的 PaaS ............................................... 5
1.1.3 Docker的逆襲 .................................................... 5
1.2 Kubernetes 是什麼 . 7
1.3 Kubernetes的發展曆史 ................................................. 8
1.4 Kubernetes的核心概念 ................................................. 9
1.4.1 Pod ............... 9
1.4.2 Replication Controller ......................................... 9
1.4.3 Service ......... 9
1.4.4 Label ............ 9
1.4.5 Node ............. 9
第 2章 Kubernetes的架構和部署 ......................... 10
2.1 Kubernetes的架構和組件 ........................................... 10
2.2 部署 Kubernetes .... 13
2.2.1環境準備 ... 14
2.2.2 運行 Etcd ... 15
2.2.3 獲取 Kubernetes發布包 .................................. 16
2.2.4 運行 Kubernetes Master組件 .......................... 16
2.2.5 運行 Kubernetes Node組件 ............................. 17
2.2.6 查詢 Kubernetes的健康狀態 .......................... 18
2.2.7 創建 Kubernetes覆蓋網絡 .............................. 19
2.3 安裝 Kubernetes擴展插件 .......................................... 22
2.3.1 安裝 Cluster DNS............................................. 23
2.3.2 安裝 Cluster Monitoring ................................... 28
2.3.3 安裝 Cluster Logging ....................................... 36
2.3.4 安裝 Kube UI ................................................... 43
第 3章 Kubernetes快速入門 ................................ 46
3.1示例應用 Guestbook .................................................... 46
3.2準備工作 ............... 47
3.3 運行 Redis ............. 48
3.3.1 創建 Redis Master Pod ..................................... 48
3.3.2 創建 Redis Master Service ............................... 49
3.3.3 創建 Redis Slave Pod ....................................... 51
3.3.4 創建 Redis Slave Service ................................. 53
3.4 運行 Frontend ........ 54
3.4.1 創建 Frontend Pod ............................................ 54
3.4.2 創建 Frontend Service...................................... 57
3.5 設置 Guestbook外網訪問 ........................................... 57
3.6 清理 Guestbook ..... 59
第 4章 Pod .... 60
4.1國際慣例的 Hello World .............................................. 60
4.2 Pod的基本操作 .... 62
4.2.1 創建 Pod .... 62
4.2.2 查詢 Pod .... 62
4.2.3 刪除 Pod .... 65
4.2.4 更新 Pod .... 65
4.3 Pod與容器 ............ 65
4.3.1 鏡像 ........... 66
4.3.2啓動命令 ... 69
4.3.3環境變量 ... 70
4.3.4 端口 ........... 72
4.3.5數據持久化和共享 .......................................... 73
4.4 Pod的網絡 ............ 74
4.5 Pod的重啓策略 .... 75
4.6 Pod的狀態和生命周期 ............................................... 77
4.6.1容器狀態 ... 77
4.6.2 Pod的生命周期階段 ....................................... 78
4.6.3生命周期迴調函數 .......................................... 79
4.7自定義檢查 Pod .... 81
4.7.1 Pod的健康檢查 ............................................... 83
4.7.2 Pod的準備狀況檢查 ....................................... 84
4.8 調度 Pod ................ 85
4.9問題定位指南 ....... 87
4.9.1事件查詢 ... 88
4.9.2日誌查詢 ... 88
4.9.3 Pod的臨終遺言 ............................................... 89
4.9.4遠程連接容器 .................................................. 90
第 5章 Replication Controller................................ 92
5.1持續運行的 Pod .... 92
5.2 Pod模闆 ................ 94
5.3 Replication Controller和 Pod的關聯 .......................... 96
5.4彈性伸縮 ............... 99
5.5自動伸縮 ............. 101
5.6滾動升級 ............. 104
5.7 Deployment .......... 107
5.8一次性任務的 Pod ..................................................... 112
第 6章 Service .................................................... 114
6.1 Service代理 Pod . 114
6.2 Service的虛擬 IP 118
6.3服務代理 ............. 119
6.4服務發現 ............. 123
6.4.1環境變量 . 124
6.4.2 DNS ......... 125
6.5 發布 Service ........ 128
6.5.1 NodePort Service ............................................ 128
6.5.2 LoadBalancer Service..................................... 129
6.5.3 Ingress ...... 130
第 7章 數據捲 ..................................................... 134
7.1 Kubernetes數據捲 ..................................................... 134
7.2本地數據捲 ......... 135
7.2.1 EmptyDir . 135
7.2.2 HostPath ... 136
7.3網絡數據捲 ......... 137
7.3.1 NFS .......... 137
7.3.2 iSCSI ........ 138
7.3.3 GlusterFS . 140
7.3.4 RBD(Ceph Block Device)......................... 141
7.3.5 Flocker ..... 142
7.3.6 AWS Elastic Block Store................................ 143
7.3.7 GCE Persistent Disk ....................................... 144
7.4 Persistent Volume和 Persistent Volume Claim.......... 145
7.4.1 創建 Persistent Volume ................................... 147
7.4.2 創建 Persistent Volume Claim ........................ 149
7.5信息數據捲 ......... 151
7.5.1 Secret ....... 151
7.5.2 Downward API ............................................... 153
7.5.3 Git Repo ... 155
第 8章 訪問 Kubernetes API ............................... 157
8.1 API對象與元數據 ..................................................... 157
8.2如何訪問 Kubernetes API.......................................... 159
8.3使用命令行工具 kubectl ............................................ 160
8.3.1 配置 Kubeconfig............................................. 161
8.3.2 Kubernetes操作 ............................................. 163
8.3.3 API對象操作 ................................................. 164
8.3.4 Pod操作 .. 168
8.3.5 Replication Controller操作 ............................ 169
8.3.6 Service操作 ................................................... 170
第 2部分 Kubernetes高級篇
第 9章 Kubernetes網絡 ..................................... 172
9.1 Docker網絡模型 . 172
9.2 Kubernetes網絡模型 ................................................. 173
9.3容器間通信 ......... 174
9.4 Pod間通信 .......... 176
9.4.1 Flannel實現 Kubernetes覆蓋網絡 ............... 177
9.4.2 使用 Open vSwitch實現 Kubernetes覆蓋網絡 ................................................... 180
9.5 Service到 Pod通信 ................................................... 183
9.5.1 Userspace模式 ............................................... 184
9.5.2 Iptables模式 ................................................... 186
第 10章 Kubernetes安全 ................................... 189
10.1 Kubernetes安全原則 ............................................... 189
10.2 Kubernetes API的安全訪問 .................................... 189
10.2.1 HTTPS . 190
10.2.2認證與授權 ................................................ 191
10.2.3 準入控製 Admission Controller................. 194
10.3 Service Account . 195
10.3.1 使用默認 Service Account ......................... 196
10.3.2創建自定義 Service Account ..................... 199
10.3.3 Service Account添加 Image Pull Secret .... 201
10.4容器安全 ........... 202
10.4.1 Linux Capability ......................................... 202
10.4.2 SELinux ...................................................... 204
10.5 多租戶 ............... 204
第 11章 Kubernetes資源管理 ............................ 206
11.1 Kubernetes資源模型 ............................................... 206
11.2資源請求和限製 207
11.3 Limit Range ....... 210
11.4 Resource Quota.. 215
第 12章 管理和運維 Kubernetes ......................... 219
12.1 Daemon Pod ....... 219
12.1.1 Static Pod .................................................... 219
12.1.2 Daemon Set ................................................ 221
12.2 Kubernetes的高可用性 ........................................... 222
12.3平颱監控 ........... 224
12.3.1 cAdvisor ..................................................... 224
12.3.2 Heapster ...................................................... 228
12.4平颱日誌 ........... 230
12.5垃圾清理 ........... 234
12.5.1 鏡像清理 .................................................... 235
12.5.2 容器清理 .................................................... 235
12.6 Kubernetes的 Web界麵 .......................................... 235
第 3部分 Kubernetes生態篇
第 13章 CoreOS ................................................. 240
13.1 CoreOS介紹 ..... 240
13.2 CoreOS工具鏈 . 241
13.2.1 Etcd ...... 241
13.2.2 Flannel . 241
13.2.3 Rocket .. 241
13.2.4 Systemd ...................................................... 241
13.2.5 Fleet ..... 241
13.3 CoreOS實踐 ..... 242
13.3.1 安裝 CoreOS .............................................. 242
13.3.2 使用 CoreOS運行 Kubernetes .................. 245
第 14章 Etcd 247
14.1 Etcd介紹 ........... 247
14.2 Etcd的結構 .............................................................. 248
14.2.1 Client-to-Server .......................................... 249
14.2.2 Peer-to-Peer ................................................ 250
14.3 Etcd實踐 ........... 250
14.3.1 運行 Etcd .................................................... 250
14.3.2 Etcd集群化 ................................................ 251
14.3.3 Etcd Proxy模式 ......................................... 258
14.3.4 Etcd的安全模式 ........................................ 259
第 15章 Mesos ................................................... 262
15.1 Mesos介紹 ........ 262
15.2 Mesos的架構 .... 263
15.3 Marathon和 K8SM介紹 ......................................... 264
15.3.1 Marathon..................................................... 264
15.3.2 K8SM .. 265
15.4 Mesos實踐 ........ 266
15.4.1 運行 Mesos ................................................. 266
15.4.2 運行 Marathon ............................................ 268
15.4.3 運行 K8SM ................................................ 270
· · · · · · (
收起)