Docker+Kubernetes容器實戰派( 簡體 字) | |
作者:趙渝強 | 類別:1. -> 作業系統 -> Docker |
出版社:電子工業出版社 | 3dWoo書號: 55810 詢問書籍請說出此書號! 有庫存 NT售價: 590 元 |
出版日:5/1/2022 | |
頁數:460 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121433139 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
上篇 Docker從原理到實戰
第1章 Docker入門 1.1 為什么需要容器技術 1.2 Docker簡介 1.3 Docker的體系架構與基本概念 1.4 安裝Docker 1.4.1 安裝Linux操作系統 /6 1.4.2 使用YUM方式安裝Docker /16 1.4.3 使用二進制包方式安裝Docker /18 1.4.4 驗證Docker環境 /21 1.5 【實戰】在Docker中部署第一個應用 第2章 Docker的鏡像 2.1 什么是Docker的鏡像 2.1.1 使用Docker默認的鏡像存儲路徑 /27 2.1.2 自定義Docker的鏡像存儲路徑 /28 2.2 使用Docker的公有鏡像倉庫 2.2.1 【實戰】訪問Docker官方的公有鏡像倉庫 /29 2.2.2 【實戰】配置和使用阿里云Docker鏡像加速倉庫 /32 2.3 使用命令行工具管理Docker的鏡像 2.4 構建自己的鏡像 2.4.1 【實戰】使用“docker commit”命令構建鏡像 /36 2.4.2 【實戰】使用Dockerfile文件構建鏡像 /39 2.4.3 Dockerfile文件詳解 /40 2.4.4 【實戰】使用Dockerfile文件的綜合案例 /42 2.5 搭建私有鏡像倉庫Harbor 2.5.1 安裝Docker和Docker Compose /45 2.5.2 安裝與配置Harbor /46 2.5.3 【實戰】在Docker中使用Harbor /48 第3章 Docker的容器 3.1 Docker容器的基本概念與操作 3.2 Docker的日志 3.2.1 【實戰】訪問Docker引擎的日志 /53 3.2.2 【實戰】訪問Docker應用的日志 /54 3.3 管理容器的資源 3.3.1 什么是Linux CGroup /56 3.3.2 【實戰】Docker對CPU的使用 /62 3.3.3 【實戰】Docker對內存的使用 /64 3.3.4 【實戰】Docker對I/O帶寬的使用 /65 3.4 管理Docker容器中的數據 3.4.1 在Docker容器中實現數據管理的兩種方式 /67 3.4.2 【實戰】使用數據卷管理Docker容器中的數據 /68 3.4.3 【實戰】使用數據卷容器管理Docker容器中的數據 /71 第4章 Docker的網絡通信 4.1 Docker容器網絡通信的基本原理 4.2 使用命令查看Docker的網絡配置信息 4.3 Docker的4種網絡通信模式 4.3.1 bridge模式 /80 4.3.2 host模式 /82 4.3.3 container模式 /83 4.3.4 none模式 /85 4.4 容器間的通信 4.4.1 【實戰】通過IP地址進行通信 /86 4.4.2 【實戰】通過Docker DNS Server進行通信 /87 4.4.3 【實戰】通過Joined方式進行通信 /88 4.4.4 容器間的跨節點通信 /89 4.5 容器的網絡訪問控制 4.5.1 容器內的應用訪問外部網絡 /95 4.5.2 從外部網絡訪問容器內的應用 /96 第5章 使用Docker Compose進行服務編排 5.1 配置Docker Compose 5.2 進行服務編排 5.2.1 【實戰】使用手動方式部署應用 /99 5.2.2 【實戰】使用Docker Compose部署應用 /101 5.2.3 【實戰】使用Docker Compose進行服務的在線擴容/縮容 /102 5.2.4 【實戰】在Docker Compose中控制模塊啟動和停止的順序 /104 5.3 Docker Compose中的網絡 5.3.1 Docker Compose中的默認網絡環境 /108 5.3.2 在Docker Compose中自定義模塊的網絡環境 /109 第6章 使用Docker Machine進行遠程管理 6.1 使用Docker Machine 6.1.1 安裝Docker Machine /112 6.1.2 在遠端宿主機上安裝Docker /112 6.2 Docker Machine的基本用法 6.2.1 【實戰】使用Docker Machine的命令 /115 6.2.2 【實戰】管理遠端的Docker節點 /116 6.3 Docker Machine的高級用法 6.3.1 【實戰】使用Docker Machine創建基于VirtualBox的虛擬主機 /118 6.3.2 【實戰】使用Docker Machine創建基于vSphere的虛擬主機 /120 第7章 使用Docker Swarm構建集群 7.1 Docker Swarm集群的體系架構 7.2 構建Docker Swarm集群 7.3 在Docker Swarm集群中部署應用與HAProxy 7.3.1 【實戰】在集群中部署應用 /126 7.3.2 【實戰】測試集群的高可用性 /128 7.3.3 【實戰】使用HAProxy為集群添加外部負載均衡功能 /130 7.3.4 【實戰】實現服務的滾動更新 /131 7.4 Docker Swarm集群的數據持久化 7.4.1 【實戰】通過volume實現集群的數據持久化 /133 7.4.2 【實戰】通過NFS實現集群的數據持久化 /134 7.5 Docker Swarm集群的負載均衡 7.5.1 【實戰】測試Docker Swarm集群的負載均衡 /138 7.5.2 選擇Docker Swarm集群的負載均衡模式 /139 第8章 在Docker中實現持續集成與持續部署 8.1 什么是持續集成與持續部署(CI/CD) 8.2 Jenkins簡介與部署 8.2.1 Docker與Jenkins集成的體系架構 /143 8.2.2 【實戰】部署Jenkins /144 8.2.3 【實戰】使用Jenkins部署第一個應用 /146 8.3 基于Jenkins實現Docker應用的持續集成與持續部署 8.3.1 【實戰】準備私有代碼倉庫SVN /150 8.3.2 開發Dockerfile文件 /152 8.3.3 【實戰】集成Jenkins和Docker /152 第9章 基于Consul實現Docker的服務注冊與發現 9.1 服務的注冊與發現 9.1.1 什么是服務的注冊與發現 /155 9.1.2 為什么需要服務的注冊與發現 /156 9.1.3 常見的服務注冊中心 /159 9.2 注冊中心Consul的基本使用 9.2.1 Consul的安裝與啟動 /160 9.2.2 【實戰】使用JSON文件在Consul中注冊服務 /161 9.2.3 【實戰】使用API在Consul中注冊服務 /163 9.3 集成Consul與Docker 9.3.1 Docker服務注冊與發現的體系架構 /166 9.3.2 【實戰】使用Registrator鏡像實現Docker服務的注冊 /167 9.3.3 【實戰】使用Consul-Template實現Docker服務的發現 /170 第10章 利用圖形工具管理Docker 10.1 單機環境中的Docker圖形工具:Docker UI 10.1.1 部署Docker UI /173 10.1.2 【實戰】使用Docker UI管理鏡像與容器 /174 10.2 輕量級的Docker圖形工具:Portainer 10.2.1 在單機環境中部署Portainer /177 10.2.2 【實戰】使用Portainer管理Docker的鏡像與容器 /179 10.2.3 【實戰】使用Portainer管理遠端主機上的Docker /180 10.2.4 在Docker Swarm集群中部署Portainer /182 10.3 開源的Docker圖形工具——Shipyard 10.3.1 Shipyard的組件 /184 10.3.2 部署Shipyard /184 10.3.3 【實戰】使用Shipyard創建容器 /187 第11章 Docker應用實戰 11.1 Docker與數據庫 11.1.1 在Docker容器中部署MySQL /188 11.1.2 數據庫不適合Docker容器化的原因 /189 11.2 【實戰】Docker與Python 11.3 【實戰】Docker與PHP /192 下篇 Kubernetes從原理到實戰 第12章 Kubernetes體系架構 12.1 什么是Kubernetes 12.2 Kubernetes集群 12.2.1 集群的架構體系 /198 12.2.2 Kubernetes的核心組件 /198 12.2.3 Kubernetes的常用附加組件 /199 12.3 Kubernetes的對象 12.3.1 對象的管理 /200 12.3.2 對象與命名空間 /201 12.3.3 對象的標簽 /202 第13章 部署Kubernetes集群 13.1 Kubernetes的部署方式 13.1.1 使用kubeadmin部署Kubernetes集群 /204 13.1.2 使用YUM方式部署Kubernetes集群 /208 13.1.3 使用二進制包部署Kubernetes集群 /212 13.1.4 使用minikube工具部署Kubernetes單機版集群 /231 13.1.5 Kubernetes集群的高可用 /236 13.2 Kubernetes的客戶端工具 13.2.1 Kubernetes圖形管理工具——DashBoard UI /237 13.2.2 Kubernetes命令行管理工具——kubectl /240 13.3 【實戰】使用Kubectl在Kubernetes中部署第一個應用 第14章 Kubernetes中的最小可部署對象Pod 14.1 什么是Pod 14.2 【實戰】Pod的基本使用方法 14.3 Pod中的容器 14.3.1 基礎容器 /251 14.3.2 初始化容器 /252 14.3.3 臨時容器 /253 14.3.4 業務容器 /254 14.4 Pod的生命周期 14.4.1 Pod的階段與容器的狀態 /255 14.4.2 Pod中容器的重啟策略 /256 14.4.3 【實戰】Pod的健康檢查 /257 14.5 Pod的調度策略 14.5.1 Pod的創建過程 /262 14.5.2 【實戰】自定義Pod調度的約束策略 /262 14.6 Pod資源的使用限制 14.7 Pod的鏡像拉取策略 14.8 Pod的配置管理 14.8.1 為什么需要配置管理 /268 14.8.2 【實戰】使用ConfigMap管理Pod的配置信息 /268 14.8.3 【實戰】使用Secret管理Pod的配置信息 /275 第15章 使用控制器管理Pod 15.1 為什么需要控制器 15.2 Deployment控制器 15.2.1 【實戰】創建和使用Deployment控制器 /282 15.2.2 【實戰】驗證Deployment控制器的不同狀態 /286 15.2.3 【實戰】Deployment控制器的清理策略 /289 15.2.4 應用的部署 /292 15.2.5 編寫Deployment控制器的規則 /304 15.3 DaemonSet控制器 15.3.1 DaemonSet控制器的創建 /305 15.3.2 DaemonSet控制器的調度 /307 15.4 Job控制器 15.4.1 【實戰】單工作隊列的Job串行方式 /307 15.4.2 【實戰】多工作隊列的Job并行方式 /308 15.4.3 Job的終止與清理 /310 15.5 CronJob控制器 15.5.1 【實戰】運行第一個CronJob控制器 /313 15.5.2 CronJob控制器中的時間表示 /314 15.5.3 CronJob控制器的限制 /315 15.6 StatefulSets控制器 15.6.1 【實戰】創建StatefulSets控制器 /316 15.6.2 StatefulSets控制器的擴容/縮容 /317 15.6.3 StatefulSets控制器的更新/回滾 /318 第16章 通過Service訪問Pod 16.1 Service的概念與使用 16.1.1 【實戰】通過Service向外部暴露Pod /321 16.1.2 Service的多端口設置 /323 16.1.3 集群內部的DNS服務 /324 16.1.4 【實戰】無頭Service /325 16.2 Service的發布類型 16.2.1 NodePort /328 16.2.2 ClusterIP /329 16.2.3 LoadBalance /331 16.2.4 ExternalName /332 16.3 虛擬IP與Service的代理模式 16.3.1 userspace代理模式 /333 16.3.2 iptables代理模式 /334 16.3.3 IPVS代理模式 /336 16.4 集群外部的請求訪問集群內應用的最佳方式——Ingress 16.4.1 Ingress是什么 /339 16.4.2 【實戰】使用Ingress Controller創建Ingress /340 16.4.3 【實戰】使用Ingress的注解 /344 16.4.4 基于Ingress的高可用架構 /348 第17章 持久化存儲 17.1 Kubernetes持久化存儲方式 17.1.1 【實戰】使用節點數據卷 /350 17.1.2 【實戰】使用網絡數據卷 /351 17.1.3 【實戰】使用臨時數據卷 /353 17.2 持久卷 17.2.1 持久卷是什么 /355 17.2.2 【實戰】第一個持久卷示例 /355 17.2.3 持久卷的訪問模式 /357 17.2.4 【實戰】持久卷的回收策略 /359 17.3 持久卷聲明 17.3.1 持久卷和持久卷聲明的區別 /361 17.3.2 【實戰】在Pod中使用持久卷聲明 /362 17.3.3 storageClass詳解 /364 17.4 【實戰】實現持久卷的動態供給 第18章 Kubernetes的安全認證 18.1 Kubernetes的安全框架 18.2 Kubernetes的用戶認證 18.3 Kubernetes的鑒權管理 18.3.1 基于角色的訪問控制(RBAC鑒權) /379 18.3.2 基于屬性的訪問控制(ABAC鑒權) /384 18.3.3 基于節點的訪問控制(node鑒權) /386 18.3.4 基于Webhook的訪問控制 /387 18.4 管理服務賬號(Service Account) 18.4.1 服務賬號與用戶賬號 /391 18.4.2 【實戰】創建和使用服務賬號 /391 18.4.3 服務賬號的工作機制 /396 第19章 Kubernetes中的日志收集與監控 19.1 收集哪些日志 19.2 日志收集方案 19.2.1 初識ELK /399 19.2.2 日志收集的架構 /399 19.2.3 日志收集方案詳解 /400 19.3 實現Kubernetes集群的日志收集 19.3.1 安裝ELK /402 19.3.2 【實戰】采集Kubernetes系統組件的日志 /405 19.3.3 【實戰】采集Nginx 應用的日志 /410 19.3.4 【實戰】采集Tomcat應用的日志 /414 19.4 監控Kubernetes 19.4.1 Kubernetes監控方案 /418 19.4.2 【實戰】部署Kubernetes監控系統 /419 第20章 Kubernetes集成與運維管理 20.1 Jenkins與Kubernetes的持續集成與持續部署 20.1.1 基于Kubernetes的Jenkins集群架構 /427 20.1.2 【實戰】Jenkins與Kubernetes的集成 /428 20.2 使用Helm簡化Kubernetes應用的部署和管理 20.2.1 什么是Helm /435 20.2.2 部署Helm /435 20.2.3 【實戰】使用Helm管理Kubernetes /437 本書基于作者多年的教學與實踐經驗編寫,分為上下兩篇,共20章。上篇(第1~11章)介紹Docoker,包含:Docker入門、Docker的鏡像、Docker的容器、Docker的網絡通信、使用Docker Compose進行服務編排、使用Docker Machine進行遠程管理、使用Docker Swarm構建集群、在Docker中實現持續集成與持續部署、基于Consul實現Docker的服務注冊與發現、利用圖形工具管理Docker及Docker應用實戰。下篇(第12~20章)介紹Kubernetes,包含:Kubernetes體系架構、部署Kubernetes集群、Kubernetes中的最小可部署對象Pod、使用控制器管理Pod、通過Service訪問Pod、持久化存儲、Kubernetes的安全認證、Kubernetes中的日志收集與監控、Kubernetes集成與運維管理。
隨著云計算的不斷發展,為了實現復雜應用的高效部署、管理及持續集成,出現了Docker和Kubernetes等虛擬化容器技術。虛擬化容器技術的發展,使得整個云原生領域更加成熟與健壯。本書正是在這樣的背景下編寫的。
筆者擁有多年的教學與實踐經驗,因此想系統地編寫一本虛擬化容器技術方面的書籍,力求能夠系統地介紹Docker與Kubernetes。通過本書,筆者一方面希望總結自己在虛擬化容器技術方面的經驗,另一方面希望對相關從業者有所幫助,從而為云原生體系在國內的發展貢獻一份力量。 ------本書特色 (1)一次講解兩種技術。 對于單一的應用,我們可以利用Docker將應用及其依賴打包到鏡像中,從而很好地解決應用部署與集成的問題。但是,當我們需要將應用進行大規模部署時,則應使用Kubernetes。因為,Docker本質上是一種單一的容器技術(或者說是一種工具),并不能很好地將應用組織起來,難以獨立地支撐起生產環境中應用的大規模容器化部署。Kubernetes的功能包括:應用的服務編排、容器集群的部署和集群的管理。 為了降低讀者的學習成本,本書一次講解了上述兩種技術。書中覆蓋了這兩種技術的核心內容,可以幫助讀者快速入門并應對工作中的大部分需求。 (2)主線清晰,循序漸進。 筆者在長期的教學過程中反復修訂了自己的講主線,發現這樣的主線更利于讀者順利地從“入門小白”成為“開發高手”。 (3)突出實戰,注重效果。 全書采用“理論+實操”的方式進行講解,在讀者了解了概念、原理、方法后會進行實操,這樣真正做到“知行合一”,而不只是停留在“知道”“了解”的層面。 書中還提供了大量來源于真實項目的技術解決方案,這些解決方案可以在實際的生產環境中給技術人員提供相應的指導。 (4)言簡意賅,閱讀性強。 全書采用通俗易懂的文字編寫,避免了復雜的語法和生僻的辭藻。書稿經過多次打磨,力求做到表達精確、前后內容銜接順暢,以期讓從未接觸過容器技術的讀者也可以讀得懂、學得會。 (5)深入原理,關注難點和易錯點。 本書不只停留在操作層,還深入介紹了容器技術的底層原理和機制。筆者在教學過程中發現有些內容對很多學員來說是難點、易錯點,所以,書中對這些知識進行了詳細講解,希望讀者可以很輕松地繞開這些“漩渦”。 ------讀者對象 本書讀者對象如下: 初學容器技術的自學者; 培訓機構的老師和學員; 中高級技術人員; 相關專業的大學畢業學生; 開發工程師; 測試工程師; 容器技術愛好者; 技術運維人員; 高等院校的教師和學生; 技術管理人員。 趙渝強 |