●部分 基礎知識
章 容器的發展史
1.1 開發過程的發展
1.1.1 瀑布式開發
1.1.2 敏捷式開發
1.1.3 DevOps
1.2 應用架構的發展
1.2.1 單體架構與多層架構
1.2.2 微服務架構
1.3 部署打包的發展
1.3.1 物理機和虛擬機
1.3.2 容器
1.3.3 容器的舵手——Kubernetes
第2章 Kubernetes的核心概念
2.1 Kubernetes的設計架構
2.1.1 Master
2.1.2 Node
2.1.3 組件間的基本交互流程
2.2 Kubernetes的核心對像
2.2.1 Pod
2.2.2 控制器
2.2.3 服務與存儲
2.2.4 資源劃分
2.3 本章小結
第二部分 應用
第3章 Kubernetes的安裝與部署
3.1 Master與Node都要安裝的基礎組件
3.1.1 在Debian、Ubuntu繫統上安裝基礎組件
3.1.2 在CentOS以及RHEL和Fedora繫統上安裝基礎組件
3.2 Master的安裝與配置
3.2.1 如何解決CPU數量不夠的問題
3.2.2 如何解決不支持交換內存的問題
3.2.3 如何解決網絡連接錯誤的問題
3.3 Node的安裝與配置
3.4 本章小結
第4章 Pod——Kubernetes的基本單位
4.1 Pod的基本操作
4.1.1 創建Pod
4.1.2 查詢Pod
4.1.3 修改Pod
4.1.4 刪除Pod
4.2 Pod模板詳解
4.3 Pod與容器
4.3.1 Pod創建容器的方式
4.3.2 Pod組織容器的方式
4.4 Pod的生命周期
4.4.1 Pod的相位
4.4.2 Pod的重啟策略
4.4.3 Pod的創建與銷毀過程
4.4.4 Pod的生命周期事件
4.5 Pod的健康檢查
4.6 本章小結
第5章 控制器——Pod的管理
5.1 Deployment控制器
5.1.1 Deployment控制器的基本操作
5.1.2 Deployment控制器的模板
5.1.3 Deployment控制器的伸縮
5.1.4 Deployment控制器的更新
5.1.5 Deployment控制器的回滾
5.2 DaemonSet控制器
5.2.1 DaemonSet控制器的基本操作
5.2.2 DaemonSet控制器的更新
5.3 Job與CronJob控制器
5.3.1 Job控制器的基本操作
5.3.2 Job的異常處理
5.3.3 CronJob控制器的基本操作
5.4 其他控制器
5.5 本章小結
第6章 Service和Ingress——發布Pod提供的服務
6.1 Service
6.1.1 向外發布——通過ClusterIP發布
6.1.2 向外發布——通過NodePort發布
6.1.3 向外發布——通過LoadBalancer發布
6.1.4 向內發布——通過無頭Service
6.1.5 向內發布——通過ExternalName
6.1.6 服務發現
6.1.7 其他配置方式
6.2 Ingress
6.2.1 Ingress控制器的安裝
6.2.2 Ingress的基本操作
6.3 本章小結
第7章 存儲與配置
7.1 本地存儲卷
7.1.1 emptyDir
7.1.2 hostPath
7.2 網絡存儲卷
7.2.1 安裝NFS
7.2.2 使用NFS
7.3 持久存儲卷
7.3.1 PV與PVC
7.3.2 StorageClass
7.4 StatefulSet控制器
7.4.1 StatefulSet控制器的基本操作
7.4.2 PVC及PV的使用
7.4.3 無頭Service的訪問
7.4.4 Pod的重建
7.4.5 StatefulSet控制器的伸縮與更新
7.5 配置存儲卷
7.5.1 ConfigMap
7.5.2 Secret
7.5.3 DownwardAPI
7.6 本章小結
第8章 Kubernetes資源的管理及調度
8.1 資源調度——為Pod設置計算資源
8.2 資源管理——命名空間
8.2.1 命名空間的基本操作
8.2.2 命名空間的資源配額
8.2.3 命名空間中單個資源的限額範圍
8.3 資源管理——標簽、選擇器及注解
8.3.1 標簽
8.3.2 選擇器
8.3.3 注解
8.4 資源調度——Pod調度策略詳解
8.4.1 調度過程
8.4.2 節點選擇調度
8.4.3 節點親和性調度
8.4.4 Pod親和性與反親和性調度
8.4.5 污點與容忍度
8.4.6 優先級與搶占式調度
8.5 本章小結
第三部分 進階
第9章 API Server
9.1 API Server的基本操作
9.1.1 寫操作
9.1.2 讀操作
9.1.3 獨有操作
9.1.4 狀態操作
9.2 API Server的身份認證、授權、準入控制
9.2.1 身份認證
9.2.2 RBAC授權
9.3 本章小結
0章 Kubernetes的擴展
10.1 可視化管理——Kubernetes Dashboard
10.1.1 安裝Kubernetes Dashboard
10.1.2 使用Kubernetes Dashboard
10.2 資源監控——Prometheus與Grafana
10.2.1 安裝與配置Prometheus
10.2.2 安裝與配置Grafana
10.3 日志管理—ElasticSearch、Fluentd、Kibana
10.4 本章小結
第四部分 實踐
1章 項目部署案例
11.1 無狀態項目的部署案例
11.2 有狀態項目的部署案例
11.3 使用Helm部署項目
11.3.1 Helm簡介
11.3.2 Helm的安裝
11.3.3 Helm Chart的基本操作
11.3.4 將Chart打包到Chart倉庫中
11.3.5 發布版本的更新、回滾和刪除
11.3.6 使用Helm部署的項目案例
11.4 本章小結
內容簡介
本書共11章,由淺入深地介紹了Kubernetes的相關技術。主要內容包括容器的發展史,Kubernetes的核心概念,Kubernetes的安裝與部署,Kubernetes的基本單位Pod,Kubernetes中的各種控制器,Kubernetes發布服務的方式,Kubernetes中的存儲卷與用法,Kubernetes中的幾種實用擴展,Kubernetes管理資源的方式與Pod的調度原理,API Server的基本使用方式及身份認證與授權方式等。本書適合開發人員、運維人員、測試人員閱讀,同時也適合對Kubernetes或容器技術感興趣的讀者閱讀。