關(guān)于我們
書單推薦
新書推薦
|
|
定 價:98 元
- 作者:Brendan Burns, Joe Beda,Kelsey Hightower, Lachlan Evenson 著 馬晶慧 譯
- 出版時間:2024/10/1
- ISBN:9787519891787
- 出 版 社:中國電力出版社
- 中圖法分類:TP316.85
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書的主要內(nèi)容包括:創(chuàng)建一個簡單的集群,了解Kubernetes的基本工作原理。深入了解使用Kubernetes部署應(yīng)用程序的細(xì)節(jié)。學(xué)習(xí)Kubernetes的專屬對象,如守護(hù)進(jìn)程集、作業(yè)、ConfigMap以及機密等。探索如何通過部署組織應(yīng)用程序的整個生命周期。學(xué)習(xí)如何保護(hù)應(yīng)用程序部署的安全。學(xué)習(xí)部署多集群應(yīng)用程序,以及通過編程語言訪問Kubernetes。
編輯推薦 Kubernetes從根本上改變了開發(fā)人員和運維人員在云中構(gòu)建、部署以及維護(hù)應(yīng)用程序的方式。無論你是分布式系統(tǒng)的新手,還是多年來一直在部署云原生應(yīng)用程序的老手,這款流行的容器編排器都可以幫助你在速度、敏捷性、可靠性以及效率等方面更上一層樓。 本書講解了如何將Kubernetes融入分布式應(yīng)用程序的生命周期。無論你是軟件開發(fā)人員、工程師還是架構(gòu)師,無論你的系統(tǒng)是在線服務(wù)、機器學(xué)習(xí)應(yīng)用程序,還是樹莓派計算機集群,都可以通過本書學(xué)習(xí)如何使用各種工具以及API來實現(xiàn)可擴展分布式系統(tǒng)的自動化。
專家推薦 本書由四位最z權(quán)c威的云原生系統(tǒng)專家撰寫而成,為學(xué)習(xí)Kubernetes概念打下堅實的基礎(chǔ),書中提供了大量示例可以幫助讀者自行探索Kubernetes。 Liz Rice, Isovalent
前言Kubernetes 要感謝所有在凌晨三點醒來重啟進(jìn)程的系統(tǒng)管理員。感謝所有將代碼推送到生產(chǎn)環(huán)境,卻發(fā)現(xiàn)代碼無法像在筆記本電腦上那樣運行的開發(fā)人員。感謝所有由于未能更新主機名而錯誤地將負(fù)載測試指向生產(chǎn)服務(wù)的系統(tǒng)架構(gòu)師。當(dāng)然,這些經(jīng)歷非常痛苦、讓人摸不著頭腦,但正是受到了這些奇怪的錯誤的啟發(fā),我們才開發(fā)出了Kubernetes。用一句話來總結(jié)就是,Kubernetes 的目的是從根本上簡化構(gòu)建、部署和維護(hù)分布式系統(tǒng)的任務(wù)。它的靈感來自幾十年來人們?yōu)闃?gòu)建可靠的系統(tǒng)而積累的經(jīng)驗,而Kubernetes 的設(shè)計目標(biāo)就是讓那些痛苦的經(jīng)歷變成愉悅,甚至是欣喜。希望你能喜歡這本書!本書面向的讀者群無論你是分布式系統(tǒng)的新手,還是多年來一直在部署云原生應(yīng)用程序的老手,容器和Kubernetes 都可以幫助你在速度、敏捷性、可靠性以及效率等方面更上一層樓。本書介紹了Kubernetes 集群編排器,以及如何利用Kubernetes 工具和API來改善分布式應(yīng)用程序的開發(fā)、交付、安全以及維護(hù)。盡管本書不要求讀者有Kubernetes 方面的經(jīng)驗,但為了充分理解書中的內(nèi)容,我們希望讀者熟悉基于服務(wù)器的應(yīng)用程序的構(gòu)建和部署。最好能夠熟悉負(fù)載均衡以及網(wǎng)絡(luò)存儲等知識,但不是必需的。同樣,擁有Linux、Linux 容器以及Docker 方面的經(jīng)驗?zāi)軌驇椭愠浞掷斫獗緯。本書的?chuàng)作緣由從Kubernetes 問世到現(xiàn)在,我們一直在跟它打交道。我們親眼目睹了它從好奇心驅(qū)使下的實驗,逐步蛻變成關(guān)鍵性的生產(chǎn)級基礎(chǔ)設(shè)施,為從機器學(xué)習(xí)到在線服務(wù)等各個領(lǐng)域的大規(guī)模生產(chǎn)應(yīng)用程序提供動力。隨著這種轉(zhuǎn)變的發(fā)生,我們越來越明顯地感覺到,如果能夠編寫一本書涵蓋Kubernetes 核心概念的使用方法,同時又能介紹這些概念開發(fā)背后的動機,那么就是對云原生應(yīng)用程序開發(fā)做出的重大貢獻(xiàn)。我們希望,通過閱讀本書,你不僅可以學(xué)習(xí)如何在Kubernetes 之上構(gòu)建可靠、可擴展的應(yīng)用程序,而且還可以洞悉分布式系統(tǒng)所面臨的核心挑戰(zhàn),因為正是這些挑戰(zhàn)促進(jìn)了分布式系統(tǒng)的發(fā)展。本書更新至第三版的原因自從本書第一版以及第二版發(fā)行以來,Kubernetes 生態(tài)系統(tǒng)一直在蓬勃發(fā)展。Kubernetes 本身已經(jīng)發(fā)布了許多版本,而且許多使用Kubernetes 的工具和模式也成為事實上的標(biāo)準(zhǔn)。在第三版中,我們重點介紹了Kubernetes 生態(tài)系統(tǒng)越來越感興趣的主題,包括安全性、通過編程語言訪問Kubernetes 以及跨多集群應(yīng)用程序部署。此外,我們還更新了所有現(xiàn)有章節(jié),以反映自第一版和第二版以來Kubernetes 的發(fā)展與演變。隨著Kubernetes 的不斷發(fā)展,我們希望幾年后再次修訂本書。當(dāng)前云原生應(yīng)用程序簡介從第一門編程語言問世到面向?qū)ο缶幊,再到虛擬化以及云基礎(chǔ)設(shè)施的發(fā)展,計算機科學(xué)的歷史就是一部抽象發(fā)展史,抽象不僅可以隱藏復(fù)雜性,還可以賦予你構(gòu)建更復(fù)雜的應(yīng)用程序的能力。盡管如此,可靠的、可擴展的應(yīng)用程序的開發(fā)仍然面臨著許多重大挑戰(zhàn)。近年來,事實證明,Kubernetes 之類的容器以及容器編排API 已成為一個重要的抽象,它能從根本上簡化可靠的、可擴展的分布式系統(tǒng)的開發(fā)。容器和編排器能夠讓開發(fā)人員以快速、靈活又可靠的方式構(gòu)建和部署應(yīng)用程序,這放在幾年前簡直就像科幻小說。本書的主要內(nèi)容本書的組織結(jié)構(gòu)如下。第1 章概述了Kubernetes 的各種優(yōu)點,但我們不會深入細(xì)節(jié)。如果你是Kubernetes 新手,最好從第1 章開始閱讀,以了解本書后續(xù)章節(jié)的大致內(nèi)容。第2 章詳細(xì)介紹了容器以及容器化應(yīng)用程序開發(fā)。如果你以前從未真正接觸過Docker,那么本章將是一個不錯的入門。如果你已是Docker 專家,那么也可以溫習(xí)一下大部分內(nèi)容。第3 章介紹了如何部署Kubernetes。雖然本書的大部分內(nèi)容都側(cè)重于Kubernetes的使用方式,但在開始使用之前,你首先需要建立并運行一個集群。盡管運行生產(chǎn)集群的知識不在本書的討論范圍內(nèi),但本章介紹了幾種簡單的創(chuàng)建集群的方法,為的是方便你了解如何使用Kubernetes。第4 章涵蓋了與Kubernetes 集群交互時常用的一系列命令。從第5 章開始,我們將深入探討使用Kubernetes 部署應(yīng)用程序的細(xì)節(jié)。我們介紹了Pod(第5 章)、標(biāo)簽和注釋(第6 章)、服務(wù)(第7 章)、Ingress(第8 章)和副本集(第9 章)。這些構(gòu)成了在Kubernetes 中部署服務(wù)所需的核心基礎(chǔ)。接下來,我們還介紹了部署(第10 章),它將整個應(yīng)用程序的生命周期聯(lián)系在一起。在這些章節(jié)之后,我們將介紹Kubernetes 的一些專屬對象:守護(hù)進(jìn)程集(第11 章)、作業(yè)(第12 章)、ConfigMap 與機密(第13 章)。雖然這些章節(jié)對于許多生產(chǎn)應(yīng)用程序來說必不可少,但如果只是為了學(xué)習(xí)Kubernetes,你可以暫時跳過這些內(nèi)容,等到以后積累到更多經(jīng)驗和專業(yè)知識之后,再回過頭來閱讀。接下來,我們還會介紹基于角色的訪問控制(第14 章)、服務(wù)網(wǎng)格(第15 章)以及將存儲集成到Kubernetes(第16 章)。此外,我們還將討論擴展Kubernetes(第17 章),通過編程語言訪問Kubernetes(第18 章)。然后,我們還會介紹Pod 的安全(第19 章)以及Kubernetes 的策略(第20 章)。最后,我們還會通過一些例子來說明如何開發(fā)和部署多集群應(yīng)用程序(第21 章),并討論如何在源代碼控制中組織應(yīng)用程序(第22 章)。在線資源你需要安裝Docker(地址:https://docker.com),可能還需要熟悉一下相關(guān)的Docker 文檔。同樣,你還需要安裝kubectl 命令行工具(地址:https://kubernetes.io)。你也可以加入Kubernetes Slack 頻道(地址:http://slack.kubernetes.io/),這是一個龐大的用戶社區(qū),每天都有很多人在其中探討和回答問題。最后,隨著技術(shù)力的提升,你可能還想看一看GitHub 上的Kubernetes 開源代碼庫(地址:https://github.com/kubernetes/kubernetes)。排版約定本書使用了下述排版約定。斜體(Italic)表示新術(shù)語、URL、示例電子郵件地址、文件名和擴展名。等寬字體(Constant Width)表示程序片段,以及正文中出現(xiàn)的變量、函數(shù)名、數(shù)據(jù)庫、數(shù)據(jù)類型、環(huán)境變量、語句和關(guān)鍵字等。加粗等寬字體(constant width bold)表示應(yīng)該由用戶輸入的命令或其他文本。等寬斜體(constant width italic)表示應(yīng)該由用戶輸入的值或根據(jù)上下文確定的值替換的文本。使用代碼示例你可以通過如下鏈接下載本書的補充材料(代碼示例,練習(xí)等):https://github.com/kubernetes-up-and-running/examples。本書的目的是幫助你完成工作。一般來說,你可以在自己的程序或者文檔中使用本書附帶的示例代碼。你無需聯(lián)系我們獲得使用許可,除非你要復(fù)制大量的代碼。例如,使用本書中的多個代碼片段編寫程序就無需獲得許可。但以CD-ROM 的形式銷售或者分發(fā)OReilly 書中的示例代碼則需要獲得許可;卮饐栴}時援引本書內(nèi)容以及書中示例代碼,無需獲得許可。在你自己的項目文檔中使用本書大量的示例代碼時,則需要獲得許可。我們不強制要求署名,但如果你這么做,我們深表感激。署名一般包括書名、作者、出版社和國際標(biāo)準(zhǔn)圖書編號。例如:Kubernetes: Up and Running, 3rd edition,by Brendan Burns, Joe Beda, Kelsey Hightower, and Lachlan Evenson (OReilly).Copyright 2019 Brendan Burns, Joe Beda, Kelsey Hightower, and Lachlan Evenson,978-1-098-11020-8。如果你覺得自身情況不在合理使用或上述允許的范圍內(nèi),請通過郵件和我們聯(lián)系,地址是 permissions@oreilly.com。OReilly 在線學(xué)習(xí)平臺(OReilly Online Learning)近40 年來,OReilly Media 致力于提供技術(shù)和商業(yè)培訓(xùn)、知識和卓越見解,來幫助眾多公司取得成功。公司獨有的專家和改革創(chuàng)新者網(wǎng)絡(luò)通過OReilly 書籍、文章以及在線學(xué)習(xí)平臺,分享他們的專業(yè)知識和實踐經(jīng)驗。OReilly 在線學(xué)習(xí)平臺按照您的需要提供實時培訓(xùn)課程、深入學(xué)習(xí)渠道、交互式編程環(huán)境以及來自O(shè)Reilly 和其他200 多家出版商的大量書籍與視頻資料。更多信息,請訪問網(wǎng)站:https://www.oreilly.com/。聯(lián)系我們?nèi)魏斡嘘P(guān)本書的意見或疑問,請按照以下地址聯(lián)系出版社。美國:OReilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中國:北京市西城區(qū)西直門南大街2 號成銘大廈C 座807 室(100035)奧萊利技術(shù)咨詢(北京)有限公司這本書有專屬網(wǎng)頁,你可以在那兒找到本書的勘誤、示例和其他信息。地址是:https://oreil.ly/kubernetesUR3。如果你對本書有一些評論或技術(shù)上的建議,請發(fā)送電子郵件到errata@oreilly.com.cn。要了解OReilly 圖書、培訓(xùn)課程、會議和新聞的更多信息,請訪問我們的網(wǎng)站,地址是:http://www.oreilly.com。我們的Facebook:http://facebook.com/oreilly。我們的Twitter:http://twitter.com/oreillymedia。我們的Youtube:http://youtube.com/oreillymedia。致謝本書得以付梓,我們要感謝所有幫助我們編寫本書的人,其中包括我們的編輯Virginia Wilson 和Sarah Grey,還有OReilly 全體工作人員,以及技術(shù)評審員,他們提供了大量的反饋意見,對我們更好地完成本書的創(chuàng)作給予了極大的幫助。最后,我們要感謝所有第一版和第二版的讀者,你們報告的勘誤已在第三版中得到了修正。謝謝你們!我們非常感謝。
Brendan Burns是Kubernetes的合伙創(chuàng)始人,微軟Azure的杰出工程師,主要負(fù)責(zé)領(lǐng)導(dǎo)開發(fā)運維、開源以及微服務(wù)等團(tuán)隊。Joe Beda是Kubernetes的合伙創(chuàng)始人,曾任VMware的首席工程師,最z近剛剛退休。Kelsey Hightower是谷歌云計算部門的工程師兼開發(fā)倡導(dǎo)者,主要負(fù)責(zé)領(lǐng)導(dǎo)軟件開發(fā)與發(fā)行工作。Lachlan Evenson是微軟Azure容器計算團(tuán)隊的首席產(chǎn)品經(jīng)理。他通過實踐教學(xué)幫助很多人學(xué)會了使用Kubernetes。
目錄 前言 1 第1 章 概述 9 1.1 速度 .10 1.1.1 不可變性的價值 11 1.1.2 聲明式配置 12 1.1.3 自我修復(fù)系統(tǒng) 13 1.2 擴展服務(wù)和團(tuán)隊 14 1.2.1 解耦 15 1.2.2 輕松擴展應(yīng)用程序和集群 15 1.2.3 通過微服務(wù)擴展開發(fā)團(tuán)隊 16 1.2.4 統(tǒng)一性與擴展的關(guān)注點分離 .17 1.3 基礎(chǔ)設(shè)施的抽象 19 1.4 效率 .20 1.5 云原生生態(tài)系統(tǒng) 21 1.6 小結(jié) .22 第2 章 創(chuàng)建和運行容器 .23 2.1 容器鏡像25 2.2 使用Docker 構(gòu)建應(yīng)用程序鏡像 27 2.2.1 Dockerfiles .27 2.2.2 優(yōu)化鏡像的大小 29 2.2.3 鏡像安全 .31 2.3 多階段鏡像構(gòu)建 31 2.4 將鏡像存儲到遠(yuǎn)程倉庫 .34 2.5 容器運行時接口 35 2.5.1 通過Docker 運行容器 35 2.5.2 探索kuard 應(yīng)用程序 .36 2.5.3 限制資源使用 36 2.6 清理 .37 2.7 小結(jié) .38 第3 章 部署Kubernetes 集群 .39 3.1 在公共云上安裝Kubernetes 40 3.1.1 Google Kubernetes Engine .40 3.1.2 使用Azure Kubernetes 服務(wù)安裝Kubernetes 41 3.1.3 在AWS 上安裝Kubernetes 42 3.2 使用minikube 在本地安裝Kubernetes 42 3.3 在Docker 中運行Kubernetes .43 3.4 Kubernetes 客戶端 44 3.4.1 檢查集群狀態(tài) 44 3.4.2 列出Kubernetes 的節(jié)點 45 3.5 集群組件47 3.5.1 Kubernetes 代理 48 3.5.2 Kubernetes DNS 48 3.5.3 Kubernetes 用戶界面 .49 3.6 小結(jié) .49 第4 章 常用的kubectl 命令 51 4.1 命名空間51 4.2 上下文 51 4.3 查看Kubernetes API 對象 52 4.4 創(chuàng)建、更新和銷毀Kubernetes 對象 53 4.5 對象的標(biāo)簽與注釋 55 4.6 調(diào)試命令55 4.7 集群管理58 4.8 自動補齊命令 .58 4.9 查看集群的其他方法 59 4.10 小結(jié) 59 第5 章 Pod .61 5.1 Kubernetes 中的Pod 62 5.2 Pod 的應(yīng)用思路 .63 5.3 Pod 清單 63 5.3.1 創(chuàng)建Pod 64 5.3.2 創(chuàng)建Pod 清單 65 5.4 運行Pod 66 5.4.1 查詢Pod 列表 66 5.4.2 Pod 的詳細(xì)信息 67 5.4.3 刪除Pod 68 5.5 訪問Pod 69 5.5.1 通過日志獲取更多信息 69 5.5.2 使用exec 在容器中運行命令 70 5.5.3 在容器之間復(fù)制文件.70 5.6 健康檢查70 5.6.1 存活探針 .71 5.6.2 就緒探針 .72 5.6.3 啟動探針 .73 5.6.4 高級探針配置 73 5.6.5 其他類型的健康檢查.73 5.7 資源管理73 5.7.1 資源請求:所需的最少資源量 .74 5.7.2 通過約束限制資源使用量 76 5.8 利用卷持久保存數(shù)據(jù) 77 5.8.1 在Pod 中使用卷 77 5.8.2 Pod 中卷的不同使用方式 78 5.9 綜合討論79 5.10 小結(jié) 81 第6 章 標(biāo)簽與注釋 83 6.1 標(biāo)簽 .83 6.1.1 應(yīng)用標(biāo)簽 .85 6.1.2 修改標(biāo)簽 .86 6.1.3 標(biāo)簽選擇器 87 6.1.4 API 對象中的標(biāo)簽選擇器 89 6.1.5 Kubernetes 架構(gòu)中的標(biāo)簽 90 6.2 注釋 .90 6.3 清理 .92 6.4 小結(jié) .92 第7 章 服務(wù)發(fā)現(xiàn) 95 7.1 什么是服務(wù)發(fā)現(xiàn) 95 7.2 服務(wù)對象96 7.2.1 DNS 服務(wù) 97 7.2.2 就緒檢查 .98 7.3 向外公開集群服務(wù) .100 7.4 負(fù)載均衡器整合 .102 7.5 高級集成.104 7.5.1 端點 .105 7.5.2 手動發(fā)現(xiàn)服務(wù) .106 7.5.3 kube-proxy 與集群IP .107 7.5.4 集群IP 環(huán)境變量 .108 7.6 連接到其他環(huán)境 .109 7.6.1 連接到集群外部的資源 .109 7.6.2 將外部資源連接到集群內(nèi)部的服務(wù) 110 7.7 清理 110 7.8 小結(jié) 110 第8 章 Ingress 的HTTP 負(fù)載均衡 . 113 8.1 Ingress 規(guī)范與Ingress 控制器 . 114 8.2 安裝Contour 115 8.2.1 配置DNS . 116 8.2.2 配置本地hosts 文件 117 8.3 使用Ingress 117 8.3.1 最簡單的用法 . 118 8.3.2 使用主機名 . 119 8.3.3 使用路徑 121 8.3.4 清理 .122 8.4 Ingress 的高級話題和技巧 .122 8.4.1 運行多個Ingress 控制器 122 8.4.2 多個Ingress 對象 .123 8.4.3 Ingress 與命名空間 .123 8.4.4 改寫路徑 124 8.4.5 提供TLS 124 8.5 其他Ingress 實現(xiàn) 126 8.6 Ingress 的未來 .126 8.7 小結(jié) 127 第9 章 副本集 . 129 9.1 協(xié)調(diào)循環(huán).130 9.2 Pod 與副本集的關(guān)系 130 9.2.1 采用現(xiàn)有的容器 131 9.2.2 隔離容器 131 9.3 副本集的設(shè)計思想 .132 9.4 副本集的規(guī)范 132 9.4.1 Pod 模板 133 9.4.2 標(biāo)簽 .133 9.5 創(chuàng)建副本集 134 9.6 檢查副本集 134 9.6.1 根據(jù)Pod 查找副本集 .135 9.6.2 查找副本集管理的Pod 集合 135 9.7 副本集的伸縮 135 9.7.1 副本集的命令式伸縮:kubectl scale 136 9.7.2 副本集的聲明式伸縮:kubectl apply .136 9.7.3 自動伸縮副本集 137 9.8 刪除副本集 139 9.9 小結(jié) 139 第10 章 部署 141 10.1 首次部署 142 10.2 創(chuàng)建部署 144 10.3 管理部署 146 10.4 更新部署 147 10.4.1 擴展部署 148 10.4.2 更新容器鏡像 148 10.4.3 推出的歷史記錄 .150 10.5 部署策略 153 10.5.1 重建策略 153 10.5.2 滾動更新策略 153 10.5.3 放慢部署速度以確保服務(wù)健康 157 10.6 刪除部署 158 10.7 監(jiān)控部署 159 10.8 小結(jié) 159 第11 章 守護(hù)進(jìn)程集 161 11.1 守護(hù)進(jìn)程集調(diào)度器 162 11.2 創(chuàng)建守護(hù)進(jìn)程集 163 11.3 將守護(hù)進(jìn)程集限制到特定節(jié)點 .165 11.3.1 向節(jié)點添加標(biāo)簽 .165 11.3.2 節(jié)點選擇器 166 11.4 更新守護(hù)進(jìn)程集 167 11.5 刪除守護(hù)進(jìn)程集 169 11.6 小結(jié) 169 第12 章 作業(yè) 171 12.1 作業(yè)對象 171 12.2 作業(yè)模式 172 12.2.1 一次性作業(yè)172 12.2.2 并行性 .177 12.2.3 工作隊列 179 12.3 定時作業(yè) 184 12.4 小結(jié) 185 第13 章 ConfigMap 與機密 187 13.1 ConfigMap 187 13.1.1 創(chuàng)建ConfigMap .188 13.1.2 使用ConfigMap .189 13.2 機密 192 13.2.1 創(chuàng)建機密 193 13.2.2 消費機密 194 13.2.3 私有容器倉庫 195 13.3 命名約束 197 13.4 管理ConfigMap 和機密 197 13.4.1 顯示列表 198 13.4.2 創(chuàng)建 198 13.4.3 更新 199 13.5 小結(jié) 201 第14 章 基于角色的訪問控制 203 14.1 基于角色的訪問控制 .204 14.1.1 Kubernetes 中的身份 204 14.1.2 角色和角色綁定 .205 14.1.3 Kubernetes 中的角色和角色綁定 205 14.2 RBAC 的管理技巧 208 14.2.1 使用can-i 測試授權(quán) .208 14.2.2 通過源代碼控制管理RBAC 209 14.3 高級主題 209 14.3.1 聚合集群角色 210 14.3.2 分組綁定 210 14.4 小結(jié) 212 第15 章 服務(wù)網(wǎng)格 213 15.1 雙向TLS 加密與身份驗證 .214 15.2 流量整形 214 15.3 內(nèi)省 215 15.4 你真的需要服務(wù)網(wǎng)格嗎 216 15.5 服務(wù)網(wǎng)格的實現(xiàn) 216 15.6 服務(wù)網(wǎng)格的發(fā)展前景 .217 15.7 小結(jié) 218 第16 章 存儲解決方案與Kubernetes 的集成 . 219 16.1 導(dǎo)入外部服務(wù) 220 16.1.1 沒有選擇器的服務(wù) 221 16.1.2 外部服務(wù)的局限性:健康檢查 223 16.2 運行可靠的單例 224 16.2.1 運行MySQL 單例服務(wù) 224 16.2.2 動態(tài)卷供應(yīng)228 16.3 利用狀態(tài)集實現(xiàn)Kubernetes 原生存儲 .230 16.3.1 狀態(tài)集的屬性 230 16.3.2 利用狀態(tài)集手動復(fù)制MongoDB.231 16.3.3 自動化MongoDB 集群的創(chuàng)建 234 16.3.4 持久卷與狀態(tài)集 .237 16.3.5 最后一步:存活探針 238 16.4 小結(jié) 238 第17 章 擴展Kubernetes 239 17.1 擴展Kubernetes 意味著什么 .239 17.2 可擴展點 240 17.3 自定義資源的模式 250 17.3.1 僅有數(shù)據(jù) 250 17.3.2 編譯器 .250 17.3.3 操作器 .251 17.3.4 如何入門 251 17.4 小結(jié) .251 第18 章 利用常見的編程語言訪問Kubernetes . 253 18.1 Kubernetes API:客戶端的視角 253 18.1.1 OpenAPI 與生成的客戶端庫 254 18.1.2 kubectl 命令 .254 18.2 Kubernetes API 編程 255 18.2.1 安裝客戶端庫 255 18.2.2 Kubernetes API 的身份驗證 .256 18.2.3 訪問Kubernetes API 258 18.2.4 綜合所有步驟:使用Python、Java 或.NET 列出和創(chuàng)建Pod 258 18.2.5 對象的創(chuàng)建與部分更新 260 18.2.6 監(jiān)控Kubernetes API 的變化 263 18.2.7 與Pod 互動 265 18.3 小結(jié) 268 第19 章 Kubernetes 應(yīng)用程序的安全 269 19.1 安全上下文 .269 19.2 Pod 安全 277 19.2.1 Pod 安全是什么 277 19.2.2 應(yīng)用Pod 安全標(biāo)準(zhǔn) 278 19.3 服務(wù)賬號管理 281 19.4 基于角色的訪問控制 .282 19.5 運行時類 282 19.6 網(wǎng)絡(luò)策略 284 19.7 服務(wù)網(wǎng)格 288 19.8 安全基準(zhǔn)工具 288 19.9 鏡像安全 290 19.10 小結(jié) .290 第20 章 Kubernetes 集群的管理策略 291 20.1 策略的重要性 291 20.2 準(zhǔn)入流程 292 20.3 Gatekeeper 的策略 293 20.3.1 開放策略代理 294 20.3.2 安裝Gatekeeper .294 20.3.3 配置策略 296 20.3.4 約束模板 300 20.3.5 創(chuàng)建約束 300 20.3.6 審計 301 20.3.7 變更 303 20.3.8 數(shù)據(jù)復(fù)制 305 20.3.9 指標(biāo) 307 20.3.10 策略庫 307 20.4 小結(jié) 307 第21 章 多集群應(yīng)用程序的部署 309 21.1 打好基礎(chǔ) 310 21.2 負(fù)載均衡 312 21.3 構(gòu)建跨多個集群的應(yīng)用程序 313 21.3.1 復(fù)制孤島:最簡單的跨區(qū)域模型 315 21.3.2 分片:區(qū)域數(shù)據(jù) .316 21.3.3 更好的靈活性:微服務(wù)路由 317 21.4 小結(jié) 318 第22 章 組織應(yīng)用程序 . 319 22.1 指導(dǎo)原則 319 22.1.1 將文件系統(tǒng)作為唯一可信的真相來源.319 22.1.2 代碼審查的作用 .320 22.1.3 特性門控 321 22.2 在源代碼管理中管理應(yīng)用程序 .322 22.2.1 文件系統(tǒng)的布局 .322 22.2.2 管理周期性的版本 323 22.3 從開發(fā)、測試與部署的角度組織應(yīng)用程序的結(jié)構(gòu) .325 22.3.1 目標(biāo) 326 22.3.2 發(fā)布的進(jìn)展326 22.4 使用模板為應(yīng)用程序添加參數(shù) .328 22.4.1 使用Helm 和模板實現(xiàn)參數(shù)化 .328 22.4.2 文件系統(tǒng)布局的參數(shù)化 329 22.5 部署全球性的應(yīng)用程序 330 22.5.1 全球部署架構(gòu) 330 22.5.2 實現(xiàn)全球部署 332 22.5.3 面向全球部署的儀表板和監(jiān)視 333 22.6 小結(jié) 334 附錄 構(gòu)建自己的Kubernetes 集群 335
|