描述
內容簡介
【本書特色】
• 雲端原生的價值與容器執行時期的關係。 • Docker與Kubernetes的發展歷史介紹。 • 容器技術發展史及其依賴的Linux基礎。 • containerd的安裝與部署及CLI工具操作。 • Kubernetes中的CRI機制及containerd中的CRI Plugin架構。 • containerd中的CNI規範與網路外掛程式。 • containerd透過snapshotter管理容器鏡像的方法。 • containerd的核心元件架構與各個模組剖析。
【書籍內容】 本書共分為八章,第一章講解雲端原生與容器執行時期,介紹什麼是雲端原生,探討其價值以及它與容器執行時期的關係,了解Docker與Kubernetes及containerd容器技術的發展歷史。 第二章深入探討容器執行時期的概念,從容器技術及介紹容器,容器所依賴的Linux基礎,當前的容器執行時期規範等。 第三章則專注於如何使用containerd,內容涵蓋containerd的安裝和部署,以及如何透過ctr和nerdctl兩種CLI工具操作containerd。 第四章講解containerd與CRI的關係,介紹Kubernetes中的CRI機制及其演進,containerd中的CRI Plugin架構和設定,以及CRI使用者端工具crictl的使用方法。 第五章主要講解containerd中的容器網路,介紹CNI規範、常見的CNI網路外掛程式,以及如何在containerd中指定容器網路建立容器等。 第六章介紹containerd和容器儲存,詳細說明containerd是如何透過snapshotter管理容器鏡像的。 第七章對containerd的核心元件進行剖析,根據containerd的架構講解組成containerd的各個模組,如API、Core以及Backend層的多個模組。第八章探討containerd在生產與實踐中的一些操作,包括如何設定containerd的監控,如何基於containerd做延伸開發等。 |
作者簡介
|
目錄
CHAPTER 1 雲端原生與容器執行時期
1.1 雲端原生概述 1.1.1 雲端原生的定義 1.1.2 雲端原生應用的價值 1.1.3 雲端原生應用與傳統應用對比 1.2 雲端原生技術堆疊與容器執行時期 1.2.1 雲端原生技術堆疊 1.2.2 容器執行時期 1.3 Docker 與Kubernetes 的發展史 1.3.1 Docker 的發展歷史及與容器世界的連結 1.3.2 Docker 架構的發展 1.4 containerd 概述
CHAPTER 2 初識容器執行時期 2.1 容器技術的發展史 2.2 容器Linux 基礎 2.2.1 容器是如何執行的 2.2.2 namespace 2.2.3 Cgroups 2.2.4 chroot 和pivot_root 2.3 容器執行時期概述 2.3.1 什麼是容器執行時期 2.3.2 OCI 規範 2.3.3 低級容器執行時期 2.3.4 高級容器執行時期
CHAPTER 3 使用containerd 3.1 containerd 的安裝與部署 3.1.1 containerd 的安裝 3.1.2 設定containerd.service 3.2 ctr 的使用 3.2.1 ctr 的安裝 3.2.2 namespace 3.2.3 鏡像操作 3.2.4 容器操作 3.3 nerdctl 的使用 3.3.1 nerdctl 的設計初衷 3.3.2 安裝和部署nerdctl 3.3.3 nerdctl 的命令行使用 3.3.4 執行容器 3.3.5 建構鏡像
CHAPTER 4 containerd 與雲端原生生態 4.1 Kubernetes 與CRI 4.1.1 Kubernetes 概述 4.1.2 CRI 與containerd 在Kubernetes 生態中的演進 4.1.3 CRI 概述 4.1.4 幾種CRI 實現及其概述 4.2 containerd 與CRI Plugin 4.2.1 containerd 中的CRI Plugin 4.2.2 CRI Plugin 中的重要設定 4.2.3 CRI Plugin 中的設定項全解 4.3 crictl 的使用 4.3.1 crictl 概述 4.3.2 crictl 的安裝和設定 4.3.3 crictl 使用說明
CHAPTER 5 containerd 與容器網路 5.1 容器網路介面 5.1.1 CNI 概述 5.1.2 CNI 設定檔的格式 5.1.3 容器執行時期對CNI 外掛程式的呼叫 5.1.4 CNI 外掛程式的執行流程 5.1.5 CNI 外掛程式的委託呼叫 5.1.6 CNI 外掛程式介面的輸出格式 5.1.7 手動設定容器網路 5.2 CNI 外掛程式介紹 5.2.1 main 類外掛程式 5.2.2 ipam 類外掛程式 5.2.3 meta 類外掛程式 5.3 containerd 中CNI 的使用 5.3.1 containerd 中CNI 的安裝與部署 5.3.2 nerdctl 使用CNI 5.3.3 CRI 使用CNI 5.3.4 ctr 使用CNI
CHAPTER 6 containerd 與容器儲存 6.1 containerd 中的資料儲存 6.1.1 理解容器鏡像 6.1.2 containerd 中的儲存目錄 6.1.3 containerd 中的鏡像儲存 6.1.4 containerd 中的content 6.1.5 containerd 中的snapshot 6.2 containerd 鏡像儲存外掛程式snapshotter 6.2.1 Docker 中的鏡像儲存管理graphdriver 6.2.2 graphdriver 與snapshotter 6.2.3 snapshotter 概述 6.2.4 containerd 中如何使用snapshotter 6.3 containerd 支援的snapshotter 6.3.1 native snapshotter 6.3.2 overlayfs snapshotter 6.3.3 devmapper snapshotter
CHAPTER 7 containerd 核心元件解析 7.1 containerd 架構總覽 7.2 containerd API 和Core 7.2.1 GRPC API 7.2.2 Services 7.2.3 Metadata 7.3 containerd Backend 7.3.1 containerd 中的proxy plugins 7.3.2 containerd 中的Runtime 和shim 7.3.3 containerd shim 規範 7.3.4 shim 工作流程解析 7.4 containerd 與NRI 7.4.1 NRI 概述 7.4.2 NRI 外掛程式原理 7.4.3 containerd 中啟用NRI 外掛程式 7.4.4 containerd NRI 外掛程式範例 7.4.5 NRI 外掛程式的應用
CHAPTER 8 containerd 生產與實踐 8.1 containerd 監控實踐 8.1.1 安裝Prometheus 8.1.2 Prometheus 上containerd 的指標擷取設定 8.1.3 Grafana 監控設定 8.1.4 設定containerd 面板 8.2 基於containerd 開發自己的容器使用者端 8.2.1 初始化Client 8.2.2 拉取鏡像 8.2.3 建立OCI Spec 8.2.4 建立task 8.2.5 啟動task 8.2.6 停止task 8.2.7 執行範例 8.3 開發自己的NRI 外掛程式 8.3.1 外掛程式定義與介面實現 8.3.2 外掛程式實例化與啟動 8.3.3 外掛程式的執行演示 |
序
|