本書總計9章,涵蓋了Kubernetesv1.29及之前版本的主要特性。圍繞Kubernetes認(rèn)證機(jī)制和安全機(jī)制進(jìn)行深入講解,既有實例,又有深入分析,可以讓讀者更容易理解Kubernetes中的認(rèn)證機(jī)制、授權(quán)模式、準(zhǔn)入控制機(jī)制,以及Pod的安全管理機(jī)制。圍繞Kubernetes存儲進(jìn)行深入講解,涉及持久卷相關(guān)的PV、PVC、StorageClass、靜態(tài)和動態(tài)存儲管理,以及CSI存儲機(jī)制的原理和發(fā)展?fàn)顩r。圍繞KubernetesAPI和開發(fā)實戰(zhàn)進(jìn)行講解,涉及Kubernetes資源對象、KubernetesAPI、CRD和Operator擴(kuò)展機(jī)制,以及如何通過swagger-editor快速調(diào)用和測試KubernetesAPI,并針對Operator開發(fā)給出完整的示例說明。并對Kubernetes開發(fā)中的新功能做了一些補(bǔ)充說明,包括Kubernetes對Windows容器的支持、如何在WindowsServer上部署Kubernetes、Kubernetes對GPU的支持和發(fā)展趨勢、Kubernetes的自動擴(kuò)縮容機(jī)制等,對Kubernetes的生態(tài)系統(tǒng)與演進(jìn)路線也進(jìn)行了深入講解。深入講解了Kubernetes的核心服務(wù)配置。
第1章 深入理解Kubernetes的安全機(jī)制
1.1 Kubernetes的常規(guī)認(rèn)證機(jī)制
1.1.1 數(shù)字證書認(rèn)證
1.1.2 Service Account認(rèn)證
1.1.3 靜態(tài)Token文件認(rèn)證
1.2 Kubernetes的擴(kuò)展認(rèn)證機(jī)制
1.2.1 OIDC Token認(rèn)證
1.2.2 Webhook Token認(rèn)證
1.2.3 Authenticating Proxy認(rèn)證
1.3 API Server的授權(quán)模式和鑒權(quán)機(jī)制
1.3.1 ABAC授權(quán)模式
1.3.2 RBAC授權(quán)模式
1.3.3 Validating Admission Policy模式
1.3.4 Webhook授權(quán)模式
1.3.5 Node授權(quán)模式
1.3.6 API Server的鑒權(quán)機(jī)制
第2章 深入理解Pod的安全機(jī)制
2.1 準(zhǔn)入控制機(jī)制
2.1.1 準(zhǔn)入控制機(jī)制概述
2.1.2 系統(tǒng)內(nèi)置的Admission Controller
2.1.3 Admission Webhook準(zhǔn)入控制器
2.2 Node資源與Pod的安全
2.2.1 Node身份安全機(jī)制
2.2.2 Node資源量安全機(jī)制
2.3 PodSecurity
2.3.1 SecurityContext
2.3.2 Pod Security Standards
2.4 Pod數(shù)據(jù)存儲安全
2.4.1 Secret私密憑據(jù)
2.4.2 Volume存儲安全
2.5 Pod網(wǎng)絡(luò)安全
2.5.1 Pod基礎(chǔ)網(wǎng)絡(luò)安全
2.5.2 Namespace網(wǎng)絡(luò)隔離
2.5.3 NetworkPolicy網(wǎng)絡(luò)隔離
第3章 容器網(wǎng)絡(luò)基礎(chǔ)
3.1 網(wǎng)絡(luò)基礎(chǔ)
3.1.1 局域網(wǎng)的構(gòu)成
3.1.2 局域網(wǎng)互聯(lián)與路由器
3.1.3 接入互聯(lián)網(wǎng)
3.2 Linux網(wǎng)絡(luò)基礎(chǔ)
3.2.1 網(wǎng)橋
3.2.2 Netfilter和iptables
3.2.3 路由
3.3 網(wǎng)絡(luò)命名空間和Veth設(shè)備對
3.3.1 網(wǎng)絡(luò)命名空間
3.3.2 Veth設(shè)備對
3.4 Docker的容器網(wǎng)絡(luò)模式簡介
3.4.1 查看Docker啟動后的系統(tǒng)情況
3.4.2 查看容器啟動后的網(wǎng)絡(luò)配置(容器無端口映射)
3.4.3 查看容器啟動后的網(wǎng)絡(luò)配置(容器有端口映射)
3.4.4 Docker的網(wǎng)絡(luò)局限性
第4章 Kubernetes網(wǎng)絡(luò)原理
4.1 Kubernetes網(wǎng)絡(luò)模型
4.2 Kubernetes網(wǎng)絡(luò)的實現(xiàn)機(jī)制
4.2.1 容器和容器之間的通信
4.2.2 Pod和Pod之間的通信
4.3 CNI網(wǎng)絡(luò)模型
4.3.1 CNM網(wǎng)絡(luò)模型簡介
4.3.2 CNI網(wǎng)絡(luò)模型詳解
4.4 開源容器網(wǎng)絡(luò)方案
4.4.1 Flannel插件的原理和部署示例
4.4.2 Open vSwitch插件的原理和部署示例
4.4.3 直接路由的原理和部署示例
4.4.4 Calico插件的原理和部署示例
4.5 Kubernetes網(wǎng)絡(luò)策略
4.5.1 網(wǎng)絡(luò)策略概述
4.5.2 Selector功能說明
4.5.3 為命名空間配置默認(rèn)的網(wǎng)絡(luò)策略
4.5.4 網(wǎng)絡(luò)策略應(yīng)用示例
4.5.5 網(wǎng)絡(luò)策略的一些特殊情況和功能限制
第5章 Kubernetes存儲原理和實踐
5.1 存儲機(jī)制概述
5.2 臨時卷詳解
5.2.1 emptyDir
5.2.2 Generic Ephemeral
5.2.3 CSI Ephemeral
5.2.4 其他類型臨時卷
5.3 持久卷詳解
5.3.1 PV和PVC的工作原理
5.3.2 PV詳解
5.3.3 PVC詳解
5.3.4 Pod使用PVC
5.3.5 StorageClass詳解
5.3.6 內(nèi)置持久卷類型
5.4 動態(tài)存儲管理實戰(zhàn):GlusterFS
5.4.1 準(zhǔn)備工作
5.4.2 創(chuàng)建GlusterFS管理服務(wù)容器集群
5.4.3 創(chuàng)建Heketi服務(wù)
5.4.4 通過Heketi管理GlusterFS集群
5.4.5 定義StorageClass
5.4.6 定義PVC
5.4.7 Pod使用PVC的存儲資源
第6章 深入理解CSI存儲機(jī)制
6.1 CSI存儲插件機(jī)制詳解
6.1.1 CSI的設(shè)計背景
6.1.2 CSI的核心組件和部署架構(gòu)
6.2 CSI存儲插件應(yīng)用實戰(zhàn)
6.2.1 部署csi-hostpath存儲插件
6.2.2 使用CSI存儲插件
6.2.3 擴(kuò)展存儲空間
6.2.4 PVC的快照管理
6.3 CSI存儲卷管理
6.3.1 存儲卷快照
6.3.2 存儲卷克隆
6.3.3 存儲容量跟蹤
6.4 CSI的演進(jìn)和發(fā)展
6.4.1 CSI驅(qū)動插件
6.4.2 CSI存儲卷健康檢查
6.4.3 in-tree插件遷移
6.4.4 新特性演進(jìn)
第7章 Kubernetes API詳解
7.1 REST概述
7.2 Kubernetes資源對象詳解
7.2.1 資源對象的類型
7.2.2 資源對象的元數(shù)據(jù)
7.2.3 資源對象的版本
7.2.4 資源對象的主體定義
7.2.5 資源對象的狀態(tài)
7.3 Kubernetes API詳解
7.3.1 API分組管理
7.3.2 API標(biāo)準(zhǔn)
7.3.3 OpenAPI規(guī)范
7.4 Kubernetes API調(diào)用和調(diào)試
7.4.1 部署swagger-editor
7.4.2 導(dǎo)入OpenAPI規(guī)范文檔
7.4.3 調(diào)用調(diào)試API
7.4.4 API Server響應(yīng)信息
第8章 Kubernetes開發(fā)指南
8.1 API客戶端庫
8.1.1 Java客戶端庫
8.1.2 Go客戶端庫
8.1.3 Python客戶端庫
8.1.4 JavaScript客戶端庫
8.2 CRD擴(kuò)展
8.2.1 CRD的概念和用法
8.2.2 CRD的定義
8.2.3 創(chuàng)建CR資源對象實例
8.2.4 CRD的高級特性
8.3 Operator開發(fā)詳解
8.3.1 Operator的概念和原理
8.3.2 定義MyPodSet CRD
8.3.3 根據(jù)CRD生成代碼
8.3.4 Operator代碼解讀
8.3.5 構(gòu)建鏡像部署
8.4 API聚合機(jī)制
8.4.1 啟用API聚合功能
8.4.2 注冊自定義API Service
8.4.3 部署自定義API Server
第9章 Kubernetes開發(fā)中的新功能
9.1 對Windows容器的支持
9.1.1 在Windows Server上安裝容器運行時
9.1.2 在Windows Server上部署Kubernetes Node組件
9.1.3 在Windows Server上部署容器應(yīng)用和服務(wù)
9.1.4 Kubernetes支持的Windows容器特性、限制和發(fā)展趨勢
9.2 對GPU的支持
9.2.1 在容器中使用GPU資源
9.2.2 發(fā)展趨勢
9.3 Kubernetes集群擴(kuò)縮容的新功能
9.3.1 Cluster AutoScaler
9.3.2 Kubernetes VPA
9.3.3 Kubernetes Addon Resizer
9.4 Kubernetesr的生態(tài)系統(tǒng)與演進(jìn)路線
9.4.1 Kubernetes與CNCF
9.4.2 Kubernetes的演進(jìn)路線
9.4.3 Kubernetes的開發(fā)模式
附錄A Kubernetes核心服務(wù)配置詳解
A.1 公共配置參數(shù)
A.2 kube-apiserver啟動參數(shù)
A.3 kube-controller-manager啟動參數(shù)
A.4 kube-scheduler啟動參數(shù)
A.5 kubelet啟動參數(shù)
A.6 kube-proxy啟動參數(shù)