《Kubernetes in Action中文版》是2018年電子工業出版社出版的圖書,作者是七牛容器雲團隊。
基本介紹
- 中文名:Kubernetes in Action中文版
- 作者:七牛容器雲團隊
- ISBN:9787121349959
- 定價:148.0
- 出版社:電子工業出版社
- 出版時間:2018-12
- 開本:16開
內容簡介,圖書目錄,
內容簡介
本書主要講解如何在 Kubernetes 中部署分散式容器套用。本書開始部分概要介紹了 Docker 和Kubernetes 的由來和發展,然後通過在 Kubernetes 中部署一個應用程式,一點點增加功能,逐步加深我們對於Kubernetes架構的理解和操作的實踐。在本書的後面部分,也可以學習一些高階的主題,比如監控、調試及伸縮。Kubernetes是希臘文,意思是“舵手”,帶領我們安全地到達未知水域。Kubernetes這樣的容器編排系統,會幫助我們妥善地管理分散式套用的部署結構和線上流量,高效地組織容器和服務。Kubernetes 作為數據中心作業系統,在設計軟體系統時,能夠儘量降低在底層網路和硬體設施上的負擔。
圖書目錄
1 Kubernetes 介紹 .1
1.1 Kubernetes 系統的需求 .2
1.1.1 從單體套用到微服務 2
1.1.2 為應用程式提供一個一致的環境 5
1.1.3 邁向持續交付 :DevOps 和無運維 6
1.2 介紹容器技術 7
1.2.1 什麼是容器 7
1.2.2 Docker 容器平台介紹 . 11
1.2.3 rkt——一個 Docker 的替代方案 14
1.3 Kubernetes 介紹 .15
1.3.1 初衷 15
1.3.2 深入淺出地了解 Kubernetes .15
1.3.3 Kubernetes 集群架構 .17
1.3.4 在 Kubernetes 中運行套用 18
1.3.5 使用 Kubernetes 的好處 20
1.4 本章小結 22
2 開始使用 Kubernetes 和 Docker 23
2.1 創建、運行及共享容器鏡像 23
2.1.1 安裝 Docker 並運行 Hello World 容器 .24
2.1.2 創建一個簡單的 Node.js 套用 26
2.1.3 為鏡像創建 Dockerfile 27
2.1.4 構建容器鏡像 27
2.1.5 運行容器鏡像 30
2.1.6 探索運行容器的內部 31
2.1.7 停止和刪除容器 32
2.1.8 向鏡像倉庫推送鏡像 33
2.2 配置 Kubernetes 集群 34
2.2.1 用 Minikube 運行一個本地單節點 Kubernetes 集群 34
2.2.2 使用 Google Kubernetes Engine 託管 Kubernetes 集群 .36
2.2.3 為 kubectl 配置別名和命令行補齊 39
2.3 在 Kubernetes 上運行第一個套用 40
2.3.1 部署 Node.js 套用 40
2.3.2 訪問 Web 套用 .43
2.3.3 系統的邏輯部分 45
2.3.4 水平伸縮套用 46
2.3.5 查看套用運行在哪個節點上 49
2.3.6 介紹 Kubernetes dashboard .50
2.4 本章小結 51
3 pod :運行於 Kubernetes 中的容器 53
3.1 介紹 pod .53
3.1.1 為何需要 pod .54
3.1.2 了解 pod .55
3.1.3 通過 pod 合理管理容器 56
3.2 以 YAML 或 JSON 描述檔案創建 pod 58
3.2.1 檢查現有 pod 的 YAML 描述檔案 .59
3.2.2 為 pod 創建一個簡單的 YAML 描述檔案 .61
3.2.3 使用 kubectl create 來創建 pod .63
3.2.4 查看應用程式日誌 64
3.2.5 向 pod 傳送請求 65
3.3 使用標籤組織 pod .66
3.3.1 介紹標籤 66
3.3.2 創建 pod 時指定標籤 67
3.3.3 修改現有 pod 的標籤 68
3.4 通過標籤選擇器列出 pod 子集 69
3.4.1 使用標籤選擇器列出 pod .69
3.4.2 在標籤選擇器中使用多個條件 71
3.5 使用標籤和選擇器來約束 pod 調度 71
3.5.1 使用標籤分類工作節點 72
3.5.2 將 pod 調度到特定節點 72
3.5.3 調度到一個特定節點 73
3.6 註解 pod .73
3.6.1 查找對象的註解 74
3.6.2 添加和修改註解 74
3.7 使用命名空間對資源進行分組 75
3.7.1 了解對命名空間的需求 75
3.7.2 發現其他命名空間及其 pod .75
3.7.3 創建一個命名空間 76
3.7.4 管理其他命名空間中的對象 77
3.7.5 命名空間提供的隔離 78
3.8 停止和移除 pod .78
3.8.1 按名稱刪除 pod .78
3.8.2 使用標籤選擇器刪除 pod .79
3.8.3 通過刪除整個命名空間來刪除 pod .80
3.8.4 刪除命名空間中的所有 pod,但保留命名空間 .80
3.8.5 刪除命名空間中的(幾乎)所有資源 80
3.9 本章小結 81
4 副本機制和其他控制器 :部署託管的 pod .83
4.1 保持 pod 健康 84
4.1.1 介紹存活探針 84
4.1.2 創建基於 HTTP 的存活探針 85
4.1.3 使用存活探針 86
4.1.4 配置存活探針的附加屬性 87
4.1.5 創建有效的存活探針 88
4.2 了解 ReplicationController 89
4.2.1 ReplicationController 的操作 90
4.2.2 創建一個 ReplicationController 92
4.2.3 使用 ReplicationController 94
4.2.4 將 pod 移入或移出 ReplicationController 的作用域 .97
4.2.5 修改 pod 模板 100
4.2.6 水平縮放 pod .101
4.2.7 刪除一個 ReplicationController 103
4.3 使用 ReplicaSet 而不是 ReplicationController .104
4.3.1 比較 ReplicaSet 和 ReplicationController .104
4.3.2 定義 ReplicaSet 105
4.3.3 創建和檢查 ReplicaSet 106
4.3.4 使用 ReplicaSet 的更富表達力的標籤選擇器 .106
4.3.5 ReplicaSet 小結 107
4.4 使用 DaemonSet 在每個節點上運行一個 pod .107
4.4.1 使用 DaemonSet 在每個節點上運行一個 pod 108
4.4.2 使用 DaemonSet 只在特定的節點上運行 pod 109
4.5 運行執行單個任務的 pod . 112
4.5.1 介紹 Job 資源 . 112
4.5.2 定義 Job 資源 . 113
4.5.3 看 Job 運行一個 pod 114
4.5.4 在 Job 中運行多個 pod 實例 . 114
4.5.5 限制 Job pod 完成任務的時間 116
4.6 安排 Job 定期運行或在將來運行一次 . 116
4.6.1 創建一個 CronJob 116
4.6.2 了解計畫任務的運行方式 118
4.7 本章小結 118
5 服務 :讓客戶端發現 pod 並與之通信 .121
5.1 介紹服務 122
5.1.1 創建服務 123
5.1.2 服務發現 129
5.2 連線集群外部的服務 132
5.2.1 介紹服務 endpoint .133
5.2.2 手動配置服務的 endpoint .133
5.2.3 為外部服務創建別名 135
5.3 將服務暴露給外部客戶端 136
5.3.1 使用 NodePort 類型的服務 .137
5.3.2 通過負載均衡器將服務暴露出來 140
5.3.3 了解外部連線的特性 142
5.4 通過 Ingress 暴露服務 .143
5.4.1 創建 Ingress 資源 .145
5.4.2 通過 Ingress 訪問服務 .146
5.4.3 通過相同的 Ingress 暴露多個服務 .147
5.4.4 配置 Ingress 處理 TLS 傳輸 .149
5.5 pod 就緒後發出信號 .150
5.5.1 介紹就緒探針 151
5.5.2 向 pod 添加就緒探針 152
5.5.3 了解就緒探針的實際作用 154
5.6 使用 headless 服務來發現獨立的 pod 155
5.6.1 創建 headless 服務 .156
5.6.2 通過 DNS 發現 pod .156
5.6.3 發現所有的 pod——包括未就緒的 pod.157
5.7 排除服務故障 158
5.8 本章小結 159
6 卷 :將磁碟掛載到容器 .161
6.1 介紹卷 162
6.1.1 卷的套用示例 .162
6.1.2 介紹可用的卷類型 164
6.2 通過卷在容器之間共享數據 165
6.2.1 使用 emptyDir 卷 .165
6.2.2 使用 Git 倉庫作為存儲卷 .168
6.3 訪問工作節點檔案系統上的檔案 171
6.3.1 介紹 hostPath 卷 171
6.3.2 檢查使用 hostPath 卷的系統 pod .172
6.4 使用持久化存儲 173
6.4.1 使用 GCE 持久磁碟作為 pod 存儲卷 174
6.4.2 通過底層持久化存儲使用其他類型的卷 177