阿裡雲數字新基建系列:雲原生操作系統 Kubernetes

羅建龍 等

立即出貨

買這商品的人也買了...

商品描述

阿裡雲數字新基建系列包括5本書,題材涉及Kubernetes、混合雲架構、雲數據庫、CDN原理與流媒體技術、雲服務器運維(Windows),囊括了領先的雲技術知識與阿裡雲技術團隊獨到的實踐經驗,是國內IT技術圖書又一套重磅作品!本書是阿裡雲容器服務產品線上實踐的技術沉澱,主要包括理論篇和實踐篇兩部分內容。理論篇註重理論介紹,核心是Kubernetes on Cloud,即著重介紹Kubernetes和阿裡雲產品的結合。實踐篇是疑難問題的診斷案例,希望通過案例來和讀者分享Kubernetes深度問題診斷經驗。   我們相信,Kubernetes on Cloud是未來十年雲原生應用的底座,在這個底座之上勢必會產生無數創新和實踐,所以我們希望這本書可以對此技術的發展產生些許推動作用。

作者簡介

阿里雲全球技術服務部團隊在支持企業架構雲原生化方面,積累了豐富的實戰經驗,服務了數万個國內外企業客戶。本書作者均來自該團隊。

羅建龍,阿里雲互聯網行業解決方案架構師,阿里雲售後雲原生技術領頭人。專注於傳統操作系統、顯卡操作系統、雲原生操作系統等領域。

劉中巍,阿里雲容器高級技術專家。在加入阿里巴巴之前,曾在微軟亞洲研究院做虛擬現實方向研究。現主要負責阿里雲容器服務產品的彈性伸縮與監控、大數據的研發,從事容器的持續交付、持續集成方案的設計與實現。在雲計算、分佈式系統、圖像識別與虛擬現實方向有多年的開發實踐經驗。

張城,阿里雲日誌服務技術專家。負責阿里巴巴集團、螞蟻金服、阿里雲等的日誌採集基礎設施,服務數万名內外部客戶。同時負責雲原生相關的日誌解決方案,包括系統組件、負載均衡、審計、安全、Service Mesh、事件、應用等日誌方案。目前主要關注可觀察性、AIOps、大規模分析引擎等方向。

黃珂,阿里巴巴高級研發工程師,主要負責Kubernetes容器存儲和網絡相關的基礎研發工作,參與了阿里集團內部有狀態應用的帶存儲和網絡的遷移,以及大規模實施在線業務存儲計算分離項目。對Kubernetes中存儲相關組件的設計,以及規模化場景的性能優化具有很深的理解和豐富的實踐經驗。

蘇夏,阿里雲智能AES專家服務高級技術工程師,現主要負責阿里雲大客戶售後技術支持以及重點項目的專家服務工作,在雲原生kubernetes、服務網格、彈性計算、負載均衡等領域有多年的技術支持經驗。

高相林,阿里雲原生應用平台高級開發工程師,主要負責阿里雲容器服務產品的集群和組件生命週期管理系統研發,以及版本生命週期管理。 Kubernetes開源社區成員。

盛訓傑,阿里雲高級技術支持工程師。在阿里雲全球技術服務部,負責阿里雲彈性計算產品及容器服務產品的技術支持工作,在企業上雲及應用容器化轉型方面有著豐富的實施落地經驗。

目錄大綱

上篇 理論篇(技術進階)

第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