【缺書】NT售價: 540 元
隨著技術的不斷進步,軟件交付方式經過三個階段。第一階段是以光盤為代表的實物交付方式,第二階段是基于互聯網的電子交付方式,第三階段是以云計算為基礎的在線交付。軟件交付的周期也越來越短,同時應用程序的規模越來越大,隨著DevOps解決方案應運而生,DevOps以持續快速發布為目標,致力于通過發布流水線支持持續的軟件構建和交付。 容器的出現,巧妙地解決了應用程序隔離的問題,Kubernetes進一步釋放了容器的能力。DevOps的理念已經深入人心,Kubernetes更是熱度不減,并且走向成熟。容器的出現加速了DevOps的落地,Kubernetes讓容器管理更便捷。隨著技術的發展,在Kubernetes之上構建DevOps無疑是正確甚至是最佳選擇之一。 本書主要介紹在Kubernetes之上構建DevOps的最佳實踐,先介紹了DevOps和Kubernetes的基本知識,然后介紹了在Kubernetes之上構建DevOps常見場景的最佳實踐,包括存儲、網絡和安全、監控和日志記錄、持續交付、集群管理,以及AWS和GCP上的Kubernetes使用。通過閱讀本書,有助于提高軟件交付自動化,縮短軟件交付時間。 本書注重實踐,是不可多得的在Kubernetes之上構建DevOps的參考手冊。相信通過閱讀本書,可以帶給讀者不少啟發,節省不少實際中摸索的時間。另外,由于譯者水平有限,雖然經過了反復核對,仍然難免有錯誤的地方,懇請各位讀者指正。
容器化被認為是實現DevOps的最佳方式。谷歌開發了Kubernetes,它有效地協調容器,被認為是容器編排的領跑者。Kubernetes是一個協調器,可以在服務集群上創建和管理容器。本書將指導管理 Kubernetes集群,然后學習如何在DevOps中監控、記錄日志和持續部署。本書將介紹DevOps和容器的基本概念,部署和將應用程序容器化,并介紹Kubernetes中的網絡和存儲。然后,使用先進的DevOps技能,如通過基于屬性的訪問控制和基于角色的訪問控制,監控、記錄和連續引入Kubernetes資源的權限控制。本書還涵蓋部署和管理Amazon Web Services和Google Cloud Platform相關內容。最后,討論了其他編排框架,如Docker Swarm模式、Amazon ECS和Apache Mesos。
1 DevOps簡介 001 軟件交付的挑戰 001 瀑布模型和實物交付 001 敏捷模型和電子交付 002 云端的軟件交付 002 持續集成 003 持續交付 003 配置管理 004 基礎設施即代碼 004 編排 005 微服務趨勢 005 模塊化編程 006 包管理 006 MVC設計模型 008 單體架構應用程序 009 遠程過程調用 009 RESTful設計 010 微服務 011 自動化工具 012 持續集成工具 012 持續交付工具 013 監控和日志工具 016 溝通工具 018 公有云 019 總結 021 2 DevOps與容器 022 了解容器 022 資源隔離 022 Linux 容器概念 023 容器交付 027 容器入門 027 在Ubuntu上安裝Docker 028 在CentOS上安裝Docker 028 在macOS上安裝Docker 029 容器生命周期 029 Docker基礎 029 層、鏡像、容器和卷 031 分發鏡像 033 連接容器 035 使用Dockerfile 037 編寫第一個Dockerfile 037 Dockerfile語法 039 組織Dockerfile 043 多容器編排 045 容器堆積 045 Docker Compose概述 046 組合容器 047 總結 050 3 Kubernetes入門 051 理解Kubernetes 051 Kubernetes組件 052 Master組件 052 節點組件 053 Master與節點通信 054 開始使用Kubernetes 054 準備環境 055 kubectl 057 Kubernetes資源 058 Kubernetes對象 058 容器編排 095 總結 103 4 存儲與資源管理 104 Kubernetes卷管理 104 容器卷生命周期 104 Pod內共享卷 106 無狀態和有狀態應用程序 106 Kubernetes持久卷和動態配置 108 持久卷抽象層聲明 109 動態配置和存儲類型 111 臨時存儲和永久存儲配置案例 113 使用狀態集(StatefulSet)管理具有持久卷的Pod 116 持久卷示例 118 Elasticsearch集群 118 Kubernetes資源管理 122 資源服務質量(QoS) 122 配置BestEffort Pod 125 配置Guaranteed Pod 127 配置Burstable Pod 128 資源使用監控 130 總結 132 5 網絡與安全 133 Kubernetes網絡 133 Docker網絡 133 容器間通信 136 Pod間通信 138 同一節點內Pod間通信 138 跨節點Pod間通信 139 Pod與服務間通信 141 外部與服務通信 144 Ingress 145 網絡策略 150 總結 153 6 監控與日志 154 容器檢查 154 Kubernetes儀表盤 155 監控Kubernetes 156 應用程序 156 主機 157 外部資源 157 容器 158 Kubernetes 158 Kubernetes監控要點 159 監控實踐 161 Prometheus介紹 161 部署Prometheus 162 使用PromQL 162 Kubernetes目標發現 163 從Kubernetes收集數據 165 使用Grafana查看指標 166 日志 167 日志聚合模式 168 節點代理方式收集日志 168 Sidecar容器方式轉發日志 169 獲取Kubernetes事件 170 Fluentd和Elasticsearch日志 171 從日志中提取指標 172 總結 173 7 持續交付 174 資源更新 174 觸發更新 174 管理滾動更新 176 更新DaemonSet和StatefulSet 178 DaemonSet 178 StatefulSet 179 構建交付管道 180 工具選擇 180 過程解析 181 深入解析Pod 185 啟動Pod 186 Liveness和Readiness探針 186 初始化容器 188 終止Pod 189 處理SIGTERM 189 容器生命周期鉤子 192 放置Pod 193 總結 194 8 集群管理 196 Kubernetes命名空間 196 默認命名空間 197 創建命名空間 197 上下文 198 資源配額 199 創建資源配額 200 請求具有默認計算資源限制的Pod 202 刪除命名空間 203 Kubeconfig 204 服務賬戶 205 認證與授權 206 認證 207 服務賬戶認證 207 用戶賬戶認證 207 授權 209 基于屬性的訪問控制(ABAC) 209 基于角色的訪問控制(RBAC) 210 角色和集群角色 210 角色綁定和集群角色綁定 212 準入控制 213 命名空間生命周期(NamespaceLifecycle) 214 范圍限制(LimitRanger) 214 服務賬戶(Service account) 214 持久卷標簽(PersistentVolumeLabel) 214 默認存儲類型(DefaultStorageClass) 214 資源配額(ResourceQuota) 214 默認容忍時間(DefaultTolerationSeconds) 215 污點(taint)和容忍(toleration) 215 Pod節點選擇器(PodNodeSelector) 216 始終準許(AlwaysAdmit) 216 始終拉取鏡像(AlwaysPullImages) 217 始終拒絕(AlwaysDeny) 217 拒絕升級執行(DenyEscalatingExec) 217 其他準入插件 217 總結 217 9 AWS上的Kubernetes 218 AWS簡介 218 公有云 219 API和基礎設施即代碼 219 AWS組件 220 VPC和子網 220 互聯網網關和NAT-GW 222 安全組 226 EC2和EBS 227 Route 53 232 ELB 234 S3 236 在AWS上安裝和配置Kubernetes 237 安裝kops 238 運行kops 238 Kubernetes云提供商 240 L4 負載均衡 240 L7 負載均衡(Ingress) 242 存儲類型(StorageClass) 245 通過kops維護Kubernetes集群 246 總結 248 10 GCP上的Kubernetes 249 GCP簡介 249 GCP組件 250 VPC 250 子網 251 防火墻規則 252 VM實例 253 負載均衡 257 持久化磁盤 262 Google容器引擎(GKE) 264 在GKE上設置第一個Kubernetes集群 265 節點池 267 多區域集群 270 集群升級 271 Kubernetes云提供商 273 存儲類型(StorageClass) 273 L4負載均衡 275 L7負載均衡(Ingress) 276 總結 280 11 未來探究 281 探索Kubernetes的可能性 281 掌握Kubernetes 281 Job和CronJob 282 Pod和節點之間的親和性與反親和性 282 Pod的自動伸縮 282 防止和緩解Pod中斷 282 Kubernetes集群聯邦(federation) 283 集群附加組件 283 Kubernetes和社區 284 Kubernetes孵化器 284 Helm和chart 285 未來基礎設施 287 Docker Swarm模式 287 Amazon Elastic Container Sercia 288 Apache Mesos 289 總結 290 讀者調查表 291 電子工業出版社編著書籍推薦表 293 反侵權盜版聲明 294