Kubernetes 是Google 開放原始碼的容器叢集管理系統,它對於容器執行時期、編排、正常服務都抽象設計出了準確完整的API,並以此建立起一個開放原始碼的系統,符合企業化需求,每家企業都可以以此架設出自動化和標準化的底層平台,以最佳化研發和營運效率。Kubernetes 可以說是Google 借助著容器領域的爆發,對於其巨大規模資料中心管理的豐富經驗的一次實作,旨在建立新的技術業界標準。
本書特色:
● Docker使用者一定要學的叢集管理
● 支援Docker-machine,Docker-composer
● 使用etcd來建立紀錄服務
● 使用Mesos來完成發現服務
● 可以用在Google的雲端平台
● 比Docker-Swarm整合度更棒的容器管理
適合:希望學習和使用Kubernetes 以及正在尋找管理資料中心解決方案的軟體工程師和架構師。
推薦序
「那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 年前開始接觸之後,就回不去了。推薦序只點出問題,答案就在這本書裏,快點開始看吧!
胡嘉璽
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。