《阿里雲數字新基建系列:雲原生作業系統Kubernetes》是2020年11月電子工業出版社出版的圖書,作者為羅建龍、劉中巍、張城、黃珂、蘇夏、高相林、盛訓傑。
本書來自阿里雲核心技術團隊的實踐沉澱,7位雲原生技術專家聚力撰寫K8S核心原理與診斷案例。
基本介紹
- 書名:阿里雲數字新基建系列:雲原生作業系統Kubernetes
- 作者:羅建龍、劉中巍、張城、黃珂、蘇夏、高相林、盛訓傑
- 出版社:電子工業出版社
- 出版時間:2020年11月
- 頁數:236 頁
- 定價:69.00 元
- 開本:16 開
- ISBN:9787121399473
內容簡介,圖書目錄,作者簡介,
內容簡介
阿里雲數字新基建系列包括5本書,題材涉及Kubernetes、混合雲架構、雲資料庫、CDN原理與流媒體技術、雲伺服器運維(Windows),囊括了領先的雲技術知識與阿里雲技術團隊獨到的實踐經驗,是國內IT技術圖書又一套重磅作品。
《阿里雲數字新基建系列:雲原生作業系統Kubernetes》是阿里雲容器服務產品線上實踐的技術沉澱,主要包括理論篇和實踐篇兩部分內容。理論篇注重理論介紹,核心是Kubernetes on Cloud,即著重介紹Kubernetes和阿里雲產品的結合。實踐篇是疑難問題的診斷案例,希望通過案例來和讀者分享Kubernetes深度問題診斷經驗。
我們相信,Kubernetes on Cloud是未來十年雲原生套用的底座,在這個底座之上勢必會產生無數創新和實踐,所以我們希望這本書可以對此技術的發展產生些許推動作用。
圖書目錄
上篇 理論篇(技術進階)
第1章 鳥瞰雲上Kubernetes
1.1 內容概要 002
1.2 雲資源層
1.2.1 專有版
1.2.2 託管版
1.2.3 Serverless版
1.3 單機系統層
1.4 集群系統層
1.4.1 專有版
1.4.2 託管版
1.4.3 Serverless版
1.5 功能擴展層
1.5.1 監控
1.5.2 日誌
1.5.3 DNS
1.6 總結
第2章 認識集群的大腦
2.1 從控制器視角看集群
2.2 控制器的產生與演進
2.2.1 設計一台冰櫃
2.2.2 統一操作入口
2.2.3 引入控制器
2.2.4 統一管理控制器
2.2.5 Shared Informer
2.2.6 List Watcher
2.3 控制器示例
2.3.1 服務控制器
2.3.2 路由控制器
2.4 總結
第3章 網路與通信原理
3.1 背景
3.2 阿里雲Kubernetes集群網路大圖
3.3 集群網路搭建
3.3.1 初始階段
3.3.2 集群階段
3.3.3 節點階段
3.3.4 Pod階段
3.4 通信原理
3.5 總結
第4章 節點伸縮的實現
4.1 節點增加原理
4.1.1 手動添加已有節點
4.1.2 自動添加已有節點
4.1.3 集群擴容
4.1.4 自動伸縮
4.2 節點減少原理
4.3 節點池原理
4.4 總結
第5章 認證與調度系統
5.1 “關在籠子裡”的程式
5.1.1 代碼
5.1.2 “籠子”
5.1.3 地址
5.2 得其門而入
5.2.1 入口
5.2.2 雙向數字證書驗證
5.2.3 KubeConfig檔案
5.2.4 訪問
5.3 擇優而居
5.3.1 兩種節點,一種任務
5.3.2 擇優而居
5.3.3 Pod配置
5.3.4 日誌級別
5.3.5 創建Pod
5.3.6 預選
5.3.7 優選
5.3.8 得分
5.4 總結
第6章 簡潔的服務模型
6.1 服務的本質是什麼
6.2 自帶通信員
6.3 讓服務照進現實
6.4 基於Netfilter的實現
6.4.1 過濾器框架
6.4.2 節點網路大圖
6.4.3 升級過濾器框架
6.4.4 用自定義鏈實現服務的反向代理
6.5 總結
第7章 監控與彈性能力
7.1 阿里雲容器服務Kubernetes的監控總覽
7.1.1 雲服務集成
7.1.2 開源集成方案
7.2 阿里雲容器服務Kubernetes的彈性總覽
7.2.1 調度層彈性組件
7.2.2 資源層彈性組件
7.3 總結
第8章 鏡像下載自動化
8.1 鏡像下載這件小事
8.2 理解OAuth 2.0協定
8.3 Docker扮演的角色
8.3.1 整體結構
8.3.2 理解docker login
8.3.3 拉取鏡像是怎么回事
8.4 Kubernetes實現的私有鏡像自動拉取
8.4.1 基本功能
8.4.2 進階方式
8.5 阿里雲實現的ACR credential helper
8.6 總結
第9章 日誌服務的集成
9.1 日誌服務介紹
9.2 採集方案介紹
9.2.1 方案簡介
9.2.2 運行流程
9.2.3 配置方式
9.3 核心技術介紹
9.3.1 背景
9.3.2 實現方式
9.3.3 alibaba-log-controller內部實現
9.4 總結
第10章 集群與存儲系統
10.1 從套用的狀態談起
10.1.1 無狀態的套用
10.1.2 有狀態的套用
10.2 基本單元:Pod Volume
10.3 核心設計:PVC與PV體系
10.4 與特定存儲系統解耦
10.4.1 Volume Plugin
10.4.2 in-tree(內置) Volume Plugin
10.4.3 out-of-tree(外置) Volume Plugin
10.5 Kubernetes CSI管控組件容器化部署
10.6 基於Kubernetes的存儲
10.7 總結
第11章 流量路由Ingress
11.1 基本原理
11.1.1 解決的問題
11.1.2 基礎用法
11.1.3 配置安全路由
11.1.4 全局配置和局部配置
11.1.5 實現原理
11.2 場景化需求
11.2.1 多入口訪問Ingress
11.2.2 部署多套Ingress Controller
11.3 獲取客戶端真實IP位址
11.3.1 理解客戶端真實IP位址的傳遞過程
11.3.2 ExternalTrafficPolicy的影響
11.3.3 如何獲取客戶端真實IP位址
11.4 白名單功能
11.5 總結
第12章 升級設計與實現
12.1 升級預檢
12.1.1 核心組件檢查項
12.1.2 前置檢查增項
12.2 原地升級與替代升級
12.2.1 原地升級
12.2.2 替代升級
12.3 升級三部曲
12.3.1 升級Master節點
12.3.2 升級Worker節點
12.3.3 核心組件升級
12.4 總結
下篇 實踐篇(診斷之美)
第13章 節點就緒狀態異常(一)
13.1 問題介紹
13.1.1 就緒狀態異常
13.1.2 背景知識
13.1.3 關於PLEG機制
13.2 Docker 棧
13.2.1 docker daemon調用棧分析
13.2.2 Containerd調用棧分析
13.3 什麼是D-Bus
13.3.1 runC請求D-Bus
13.3.2 原因並不在D-Bus
13.4 Systemd是硬骨頭
13.4.1 “沒用”的core dump
13.4.2 零散的信息
13.4.3 代碼分析
13.4.4 Live Debugging
13.4.5 怎么判斷集群節點NotReady是這個問題導致的
13.5 問題的解決
13.6 總結
第14章 節點就緒狀態異常(二)
14.1 問題介紹
14.2 節點狀態機
14.3 就緒三分鐘
14.4 止步不前的PLEG
14.5 無回響的Terwayd
14.6 原因
14.7 修復
14.8 總結
第15章 命名空間回收機制失效
15.1 問題背景介紹
15.2 集群管控入口
15.3 命名空間控制器的行為
15.3.1 刪除收納盒裡的資源
15.3.2 API、Group、Version
15.3.3 控制器不能刪除命名空間裡的資源
15.4 回到集群管控入口
15.5 節點與Pod的通信
15.6 集群節點訪問雲資源
15.7 問題回顧
15.8 總結
第16章 網路安全組加固對與錯
16.1 安全組扮演的角色
16.2 安全組與集群網路
16.3 怎么管理安全組規則
16.3.1 限制集群訪問外網
16.3.2 IDC與集群互訪
16.3.3 使用新的安全組管理節點
16.4 典型問題與解決方案
16.4.1 使用多個安全組管理集群節點
16.4.2 限制集群訪問公網或運營商級NAT保留地址
16.4.3 容器組跨節點通信異常
16.5 總結
第17章 格線套用存活狀態異常
17.1 線上一半的微服務
17.2 認識服務格線
17.3 代理與代理的生命周期管理
17.4 就緒檢查的實現
17.5 控制面和數據面
17.6 簡單的原因
17.7 阿里雲服務格線(ASM)介紹
17.8 總結
第18章 格線自簽名根證書過期
18.1 連續重啟的Citadel
18.2 一般意義上的證書驗證
18.3 自簽名證書驗證失敗
18.4 大神定理
18.5 Citadel證書體系
18.6 經驗
18.7 總結
附錄A 本書插圖索引
附錄B 本書部分縮略語 P210
作者簡介
阿里雲全球技術服務部團隊在支持企業架構雲原生化方面,積累了豐富的實戰經驗,服務了數萬個國內外企業客戶。本書作者均來自該團隊。
羅建龍,阿里雲網際網路行業解決方案架構師,阿里雲售後雲原生技術領頭人。專注於傳統作業系統、顯示卡作業系統、雲原生作業系統等領域。
劉中巍,阿里雲容器高級技術專家。在加入阿里巴巴之前,曾在微軟亞洲研究院做虛擬現實方向研究。現主要負責阿里雲容器服務產品的彈性伸縮與監控、大數據的研發,從事容器的持續交付、持續集成方案的設計與實現。在雲計算、分散式系統、圖像識別與虛擬現實方向有多年的開發實踐經驗。
張城,阿里雲日誌服務技術專家。負責阿里巴巴集團、螞蟻金服、阿里雲等的日誌採集基礎設施,服務數萬名內外部客戶。同時負責雲原生相關的日誌解決方案,包括系統組件、負載均衡、審計、安全、Service Mesh、事件、套用等日誌方案。目前主要關注可觀察性、AIOps、大規模分析引擎等方向。
黃珂,阿里巴巴高級研發工程師,主要負責Kubernetes容器存儲和網路相關的基礎研發工作,參與了阿里集團內部有狀態套用的帶存儲和網路的遷移,以及大規模實施線上業務存儲計算分離項目。對Kubernetes中存儲相關組件的設計,以及規模化場景的性能最佳化具有很深的理解和豐富的實踐經驗。
蘇夏,阿里雲智慧型AES專家服務高級技術工程師,現主要負責阿里雲大客戶售後技術支持以及重點項目的專家服務工作,在雲原生kubernetes、服務格線、彈性計算、負載均衡等領域有多年的技術支持經驗。
高相林,阿里雲原生套用平台高級開發工程師,主要負責阿里雲容器服務產品的集群和組件生命周期管理系統研發,以及版本生命周期管理。Kubernetes開源社區成員。
盛訓傑,阿里雲高級技術支持工程師。在阿里雲全球技術服務部,負責阿里雲彈性計算產品及容器服務產品的技術支持工作,在企業上雲及套用容器化轉型方面有著豐富的實施落地經驗。