Kubernetes 是Google 開放原始碼的容器叢集管理系統,它對於容器執行時期、編排、正常服務都抽象設計出了準確完整的API,並以此建立起一個開放原始碼的系統,符合企業化需求,每家企業都可以以此架設出自動化和標準化的底層平台,以最佳化研發和營運效率。Kubernetes 可以說是Google 借助著容器領域的爆發,對於其巨大規模資料中心管理的豐富經驗的一次實作,旨在建立新的技術業界標準。
本書特色:
● Docker使用者一定要學的叢集管理
● 支援Docker-machine,Docker-composer
● 使用etcd來建立紀錄服務
● 使用Mesos來完成發現服務
● 可以用在Google的雲端平台
● 比Docker-Swarm整合度更棒的容器管理
適合:希望學習和使用Kubernetes 以及正在尋找管理資料中心解決方案的軟體工程師和架構師。
作者簡介:
吳龍輝
網宿科技雲端計算架構師,負責雲端平台的設計和研發工作。活躍於CloudFoundry、Docker、Kubernetes等開源社區,致力於雲端運算PaaS的研究,擁有豐富的雲端運實戰經驗。
推薦序
推薦序
「那Docker 當機了怎麼辦?」
從2014 年在中華電信上Docker 課程後,這是每一次在企業或大專院校上課時,都會遇到的問題。
人類本來就是活在疊床架屋的邏輯中,一個東西基於另一個東西基於另一個東西⋯⋯成為一個Stack,這整個Stack 就是整個服務。這種站在巨人肩膀的方式雖然可以讓你專心於最上層的服務,但下面的任何一層毀了,什麼就都毀了。
Docker 雖然打破了這個常規,將不同的服務放入不同的容器中。試想你可以把資料放在一個Container,DB 服務放在另一個Container,nginx 再放一個,網路拓樸再放一個,整個完整網頁系統分佈在不同的容器中,感覺比蓋高樓似乎安全許多了。
「那Docker 當機了怎麼辦?」
那就完了。
Docker 一出來就被質疑,雖然他的優點大於缺點,但在實際應用中,這真的是最常碰到的問題。筆者架設一個網站系統,異地備援十分重要,因此安裝了sshfs,但sshfs 常常會當機,因此需要使用upstart 來監控,只是當sshfs 一當,不知為何apache 的Docker 也會跟著死,sshfs 起來,Docker 沒起來,整個網站又不行了。
和我一樣很多人也想用systemd 之類的服務來監控docker,但這會碰到另一個問題,就是當硬體資源不夠支撐Docker 時,重新啟動docker 也無濟於事,看來把Docker 丟到cluster 中才是正解。
只要一碰到Cluster,那就是設定、網路及管理的噩夢,尤其是Docker 是一個這麼底層的服務。我們需要一個資料庫來存放Docker 的metadata,我們也需要一個發現服務來知道誰活著,誰死了,誰的硬體資源快沒了,誰的硬體資源還很多。當然如果有一個能管理每一台硬體的orchestrating 服務那就更好了。
在Docker 叢集還沒流行之前,大家試著用fig 來做這事,用etcd 來做這事,管理很熟的人用chef 做這事( 我愛用Ansible),只是雜七雜八的拼湊,不要說穩定度了,就連搭建起這樣的環境都有大困難,那不如真的Docker 當機時,從床上爬起來用手動再啟動吧( 筆者曾幾何時也過過這種生活)。
Docker Swarm 的出現解決了大部分的問題,如果你搭配了Docker Machine就可以跨硬體,再搭配Docker Composer 就可以跨容器並且自動化,真的好像是Vagrant 的感覺了。只不過,這種設定,通常只是讓你在區域網路裏自嗨罷了,到了S3,GCE 或Linknode 時怎麼辦?你上不了雲端。
說了這麼多廢話,答案明顯就是這本書中的Kubernetes 了。書名是「Google御用」,自然有品質保證。筆者在2 年前開始接觸之後,就回不去了。推薦序只點出問題,答案就在這本書裏,快點開始看吧!
胡嘉璽
推薦序
「那Docker 當機了怎麼辦?」
從2014 年在中華電信上Docker 課程後,這是每一次在企業或大專院校上課時,都會遇到的問題。
人類本來就是活在疊床架屋的邏輯中,一個東西基於另一個東西基於另一個東西⋯⋯成為一個Stack,這整個Stack 就是整個服務。這種站在巨人肩膀的方式雖然可以讓你專心於最上層的服務,但下面的任何一層毀了,什麼就都毀了。
Docker 雖然打破了這個常規,將不同的服務放入不同的容器中。試想你可以把資料放在一個Container,DB 服務放在另一個Container,nginx 再放一個,網路拓樸再放一個,整個完整網頁系統分佈...
目錄
前言
PART1 Kubernetes 基礎篇
01 Kubernetes 介紹
1.1 為什麼會有Kubernetes
1.1.1 雲端運算大潮
1.1.2 不溫不火的PaaS
1.1.3 Docker 的逆襲
1.2 Kubernetes 是什麼
1.3 Kubernetes 的發展歷史
1.4 Kubernetes 的核心概念
02 Kubernetes 的架構和部署
2.1 Kubernetes 的架構和元件
2.2 部署Kubernetes
2.3 安裝Kubernetes 擴充外掛程式
03 Kubernetes 快速入門
3.1 範例應用Guestbook
3.2 準備工作
3.3 執行Redis
3.4 執行Frontend
3.5 設定Guestbook 外網存取
3.6 清理Guestbook
04 Pod
4.1 國際慣例的Hello World
4.2 Pod 的基本操作
4.3 Pod 與容器
4.4 Pod 的網路
4.5 Pod 的重新啟動策略
4.6 Pod 的狀態和生命週期
4.7 自訂檢查Pod
4.8 排程Pod
4.9 問題鎖定指南
05 Replication Controller
5.1 持續執行的Pod
5.2 Pod 範本
5.3 Replication Controller 和Pod 的連結
5.4 彈性伸縮
5.5 自動伸縮
5.6 輪流升級
5.7 Deployment
5.8 臨時性工作的Pod
06 Service
6.1 Service 代理Pod
6.2 Service 的虛擬IP
6.3 服務代理
6.4 服務發現
6.5 發佈Service
07資料卷冊
7.1 Kubernetes 資料卷冊
7.2 本機資料卷冊
7.3 網路資料卷冊
7.4 Persistent Volume 和Persistent Volume Claim
7.5 資訊資料卷冊
08存取Kubernetes API
8.1 API 物件與中繼資料
8.2 如何存取Kubernetes API
8.3 使用命令列工具kubectl
PART 2 Kubernetes 進階篇
09 Kubernetes 網路
9.1 Docker 網路模型
9.2 Kubernetes 網路模型
9.3 容器間通訊
9.4 Pod 間通訊
9.5 Service 到Pod 通訊
10 Kubernetes 安全
10.1 Kubernetes 安全原則
10.2 Kubernetes API 的安全存取
10.3 Service Account
10.4 容器安全
10.5 多租戶
11 Kubernetes 資源管理
11.1 Kubernetes 資源模型
11.2 資源請求和限制
11.3 Limit Range
11.4 Resource Quota
12管理和運行維護Kubernetes
12.1 Daemon Pod
12.2 Kubernetes 的高可用性
12.3 平台監控
12.4 平台記錄檔
12.5 垃圾清理
12.6 Kubernetes 的Web 介面
PART 3 Kubernetes 生態篇
13 CoreOS
13.1 CoreOS 介紹
13.2 CoreOS 工具鏈
13.3 CoreOS 實作
14 Etcd
14.1 Etcd 介紹
14.2 Etcd 的結構
14.3 Etcd 實作
15 Mesos
15.1 Mesos 介紹
15.2 Mesos 的架構
15.3 Marathon 和K8SM 介紹
15.4 Mesos 實作
前言
PART1 Kubernetes 基礎篇
01 Kubernetes 介紹
1.1 為什麼會有Kubernetes
1.1.1 雲端運算大潮
1.1.2 不溫不火的PaaS
1.1.3 Docker 的逆襲
1.2 Kubernetes 是什麼
1.3 Kubernetes 的發展歷史
1.4 Kubernetes 的核心概念
02 Kubernetes 的架構和部署
2.1 Kubernetes 的架構和元件
2.2 部署Kubernetes
2.3 安裝Kubernetes 擴充外掛程式
03 Kubernetes 快速入門
3.1 範例應用Guestbook
3.2 準備工作
3.3 執行Redis
3.4 執行Frontend
3.5 設定Guestbook 外網存取
3.6 清理Guestbook
04 Pod
4.1 國際慣例的Hello World
4.2 Pod 的基本操作...
購物須知
關於二手書說明:
商品建檔資料為新書及二手書共用,因是二手商品,實際狀況可能已與建檔資料有差異,購買二手書時,請務必檢視商品書況、備註說明及書況影片,收到商品將以書況影片內呈現為準。若有差異時僅可提供退貨處理,無法換貨或再補寄。
商品版權法律說明:
TAAZE 單純提供網路二手書託售平台予消費者,並不涉入書本作者與原出版商間之任何糾紛;敬請各界鑒察。
退換貨說明:
二手書籍商品享有10天的商品猶豫期(含例假日)。若您欲辦理退貨,請於取得該商品10日內寄回。
二手影音商品(例如CD、DVD等),恕不提供10天猶豫期退貨。
二手商品無法提供換貨服務,僅能辦理退貨。如須退貨,請保持該商品及其附件的完整性(包含書籍封底之TAAZE物流條碼)。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱
退換貨原則、
二手CD、DVD退換貨說明。