基于Kubernetes的DevOps實(shí)踐:容器加速軟件交付
定 價:108 元
叢書名:云計(jì)算技術(shù)實(shí)踐系列叢書
- 作者:(加)Hideto Saito(希迪托·佐藤)等
- 出版時間:2019/7/1
- ISBN:9787121365706
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP393.027
- 頁碼:312
- 紙張:
- 版次:01
- 開本:16開
容器化被認(rèn)為是實(shí)現(xiàn)DevOps的最佳方式。谷歌開發(fā)了Kubernetes,它有效地協(xié)調(diào)容器,被認(rèn)為是容器編排的領(lǐng)跑者。Kubernetes是一個協(xié)調(diào)器,可以在服務(wù)集群上創(chuàng)建和管理容器。本書將指導(dǎo)管理 Kubernetes集群,然后學(xué)習(xí)如何在DevOps中監(jiān)控、記錄日志和持續(xù)部署。本書將介紹DevOps和容器的基本概念,部署和將應(yīng)用程序容器化,并介紹Kubernetes中的網(wǎng)絡(luò)和存儲。然后,使用先進(jìn)的DevOps技能,如通過基于屬性的訪問控制和基于角色的訪問控制,監(jiān)控、記錄和連續(xù)引入Kubernetes資源的權(quán)限控制。本書還涵蓋部署和管理Amazon Web Services和Google Cloud Platform相關(guān)內(nèi)容。最后,討論了其他編排框架,如Docker Swarm模式、Amazon ECS和Apache Mesos。
Hideto Saito在計(jì)算機(jī)行業(yè)擁有約20年的經(jīng)驗(yàn)。1998年,在SUN工作期間,對Solaris OS、OPENSTEP和Sun UltraEnterprise1000(AKA StraFire)有研究。UNIX和MacOS X操作系統(tǒng)擁護(hù)者。2006年,開發(fā)在Linux和MacOS X上運(yùn)行的相關(guān)產(chǎn)品,以快速的Objective-C編碼而聞名。
中聯(lián)潤通運(yùn)維總監(jiān),云技術(shù)社區(qū)創(chuàng)始人.曾在盛大游戲 金山西山居負(fù)責(zé)系統(tǒng)運(yùn)維工作。維護(hù)有微信訂閱號:"云技術(shù)實(shí)踐”著有《深度實(shí)踐KVM》一書 《Ceph手冊》中文版譯者之一 《運(yùn)維前線》系列圖書策劃人。
1 DevOps簡介 001
軟件交付的挑戰(zhàn) 001
瀑布模型和實(shí)物交付 001
敏捷模型和電子交付 002
云端的軟件交付 002
持續(xù)集成 003
持續(xù)交付 003
配置管理 004
基礎(chǔ)設(shè)施即代碼 004
編排 005
微服務(wù)趨勢 005
模塊化編程 006
包管理 006
MVC設(shè)計(jì)模型 008
單體架構(gòu)應(yīng)用程序 009
遠(yuǎn)程過程調(diào)用 009
RESTful設(shè)計(jì) 010
微服務(wù) 011
自動化工具 012
持續(xù)集成工具 012
持續(xù)交付工具 013
監(jiān)控和日志工具 016
溝通工具 018
公有云 019
總結(jié) 021
2 DevOps與容器 022
了解容器 022
資源隔離 022
Linux 容器概念 023
容器交付 027
容器入門 027
在Ubuntu上安裝Docker 028
在CentOS上安裝Docker 028
在macOS上安裝Docker 029
容器生命周期 029
Docker基礎(chǔ) 029
層、鏡像、容器和卷 031
分發(fā)鏡像 033
連接容器 035
使用Dockerfile 037
編寫第一個Dockerfile 037
Dockerfile語法 039
組織Dockerfile 043
多容器編排 045
容器堆積 045
Docker Compose概述 046
組合容器 047
總結(jié) 050
3 Kubernetes入門 051
理解Kubernetes 051
Kubernetes組件 052
Master組件 052
節(jié)點(diǎn)組件 053
Master與節(jié)點(diǎn)通信 054
開始使用Kubernetes 054
準(zhǔn)備環(huán)境 055
kubectl 057
Kubernetes資源 058
Kubernetes對象 058
容器編排 095
總結(jié) 103
4 存儲與資源管理 104
Kubernetes卷管理 104
容器卷生命周期 104
Pod內(nèi)共享卷 106
無狀態(tài)和有狀態(tài)應(yīng)用程序 106
Kubernetes持久卷和動態(tài)配置 108
持久卷抽象層聲明 109
動態(tài)配置和存儲類型 111
臨時存儲和永久存儲配置案例 113
使用狀態(tài)集(StatefulSet)管理具有持久卷的Pod 116
持久卷示例 118
Elasticsearch集群 118
Kubernetes資源管理 122
資源服務(wù)質(zhì)量(QoS) 122
配置BestEffort Pod 125
配置Guaranteed Pod 127
配置Burstable Pod 128
資源使用監(jiān)控 130
總結(jié) 132
5 網(wǎng)絡(luò)與安全 133
Kubernetes網(wǎng)絡(luò) 133
Docker網(wǎng)絡(luò) 133
容器間通信 136
Pod間通信 138
同一節(jié)點(diǎn)內(nèi)Pod間通信 138
跨節(jié)點(diǎn)Pod間通信 139
Pod與服務(wù)間通信 141
外部與服務(wù)通信 144
Ingress 145
網(wǎng)絡(luò)策略 150
總結(jié) 153
6 監(jiān)控與日志 154
容器檢查 154
Kubernetes儀表盤 155
監(jiān)控Kubernetes 156
應(yīng)用程序 156
主機(jī) 157
外部資源 157
容器 158
Kubernetes 158
Kubernetes監(jiān)控要點(diǎn) 159
監(jiān)控實(shí)踐 161
Prometheus介紹 161
部署Prometheus 162
使用PromQL 162
Kubernetes目標(biāo)發(fā)現(xiàn) 163
從Kubernetes收集數(shù)據(jù) 165
使用Grafana查看指標(biāo) 166
日志 167
日志聚合模式 168
節(jié)點(diǎn)代理方式收集日志 168
Sidecar容器方式轉(zhuǎn)發(fā)日志 169
獲取Kubernetes事件 170
Fluentd和Elasticsearch日志 171
從日志中提取指標(biāo) 172
總結(jié) 173
7 持續(xù)交付 174
資源更新 174
觸發(fā)更新 174
管理滾動更新 176
更新DaemonSet和StatefulSet 178
DaemonSet 178
StatefulSet 179
構(gòu)建交付管道 180
工具選擇 180
過程解析 181
深入解析Pod 185
啟動Pod 186
Liveness和Readiness探針 186
初始化容器 188
終止Pod 189
處理SIGTERM 189
容器生命周期鉤子 192
放置Pod 193
總結(jié) 194
8 集群管理 196
Kubernetes命名空間 196
默認(rèn)命名空間 197
創(chuàng)建命名空間 197
上下文 198
資源配額 199
創(chuàng)建資源配額 200
請求具有默認(rèn)計(jì)算資源限制的Pod 202
刪除命名空間 203
Kubeconfig 204
服務(wù)賬戶 205
認(rèn)證與授權(quán) 206
認(rèn)證 207
服務(wù)賬戶認(rèn)證 207
用戶賬戶認(rèn)證 207
授權(quán) 209
基于屬性的訪問控制(ABAC) 209
基于角色的訪問控制(RBAC) 210
角色和集群角色 210
角色綁定和集群角色綁定 212
準(zhǔn)入控制 213
命名空間生命周期(NamespaceLifecycle) 214
范圍限制(LimitRanger) 214
服務(wù)賬戶(Service account) 214
持久卷標(biāo)簽(PersistentVolumeLabel) 214
默認(rèn)存儲類型(DefaultStorageClass) 214
資源配額(ResourceQuota) 214
默認(rèn)容忍時間(DefaultTolerationSeconds) 215
污點(diǎn)(taint)和容忍(toleration) 215
Pod節(jié)點(diǎn)選擇器(PodNodeSelector) 216
始終準(zhǔn)許(AlwaysAdmit) 216
始終拉取鏡像(AlwaysPullImages) 217
始終拒絕(AlwaysDeny) 217
拒絕升級執(zhí)行(DenyEscalatingExec) 217
其他準(zhǔn)入插件 217
總結(jié) 217
9 AWS上的Kubernetes 218
AWS簡介 218
公有云 219
API和基礎(chǔ)設(shè)施即代碼 219
AWS組件 220
VPC和子網(wǎng) 220
互聯(lián)網(wǎng)網(wǎng)關(guān)和NAT-GW 222
安全組 226
EC2和EBS 227
Route 53 232
ELB 234
S3 236
在AWS上安裝和配置Kubernetes 237
安裝kops 238
運(yùn)行kops 238
Kubernetes云提供商 240
L4 負(fù)載均衡 240
L7 負(fù)載均衡(Ingress) 242
存儲類型(StorageClass) 245
通過kops維護(hù)Kubernetes集群 246
總結(jié) 248
10 GCP上的Kubernetes 249
GCP簡介 249
GCP組件 250
VPC 250
子網(wǎng) 251
防火墻規(guī)則 252
VM實(shí)例 253
負(fù)載均衡 257
持久化磁盤 262
Google容器引擎(GKE) 264
在GKE上設(shè)置第一個Kubernetes集群 265
節(jié)點(diǎn)池 267
多區(qū)域集群 270
集群升級 271
Kubernetes云提供商 273
存儲類型(StorageClass) 273
L4負(fù)載均衡 275
L7負(fù)載均衡(Ingress) 276
總結(jié) 280
11 未來探究 281
探索Kubernetes的可能性 281
掌握Kubernetes 281
Job和CronJob 282
Pod和節(jié)點(diǎn)之間的親和性與反親和性 282
Pod的自動伸縮 282
防止和緩解Pod中斷 282
Kubernetes集群聯(lián)邦(federation) 283
集群附加組件 283
Kubernetes和社區(qū) 284
Kubernetes孵化器 284
Helm和chart 285
未來基礎(chǔ)設(shè)施 287
Docker Swarm模式 287
Amazon Elastic Container Sercia 288
Apache Mesos 289
總結(jié) 290
讀者調(diào)查表 291
電子工業(yè)出版社編著書籍推薦表 293
反侵權(quán)盜版聲明 294