Kubernetes進階實戰(zhàn)

      網(wǎng)友投稿 643 2025-04-01

      云計算與虛擬化技術(shù)叢書

      Kubernetes進階實戰(zhàn)

      馬永亮 著

      Preface 前言

      為什么要寫這本書

      作為置身于IT技術(shù)領(lǐng)域多年的實踐者和教育者,我們一直盼望著行業(yè)迎來這樣一個時刻:異構(gòu)的IT基礎(chǔ)設(shè)施環(huán)境所造成的開發(fā)和部署系統(tǒng)應(yīng)用紛繁復(fù)雜的局面終于迎來了終結(jié)者,開發(fā)人員無須再考慮復(fù)雜多樣的運行環(huán)境下軟件程序的移植問題,運維人員不用再手動解決運行環(huán)境中組件間的依賴關(guān)系等,從而讓各自的核心職責都回歸到開發(fā)和保證系統(tǒng)穩(wěn)定運行本身。終于,以Docker為首的容器技術(shù)為此帶來了基礎(chǔ)保障,并在容器編排技術(shù)的支撐下塵埃落定,甚至連IT管理者心心念念多年的DevOps文化運動也借此找到了易于落地的實現(xiàn)方案。于是,系統(tǒng)運行割據(jù)多年的局面終于將走向天下一統(tǒng)。

      盡管距Kubernetes 1.0的發(fā)布不過三四年的光景,但其如今的影響力在IT技術(shù)領(lǐng)域完全算得上空前絕后,目前,一眾大小公司都在使用或正籌劃使用這一IT技術(shù)發(fā)展史上可能最為成功的開源項目。Linux軟件基金會的常務(wù)董事Jim Zemlin在Google Cloud Next 17大會上曾表示,Kubernetes是“云時代的Linux”。的確,Kubernetes應(yīng)該是開源世界有史以來迭代最快的項目,而且在幾乎所有需要采用容器技術(shù)的場景里成為占統(tǒng)治地位的解決方案,其發(fā)展速度恐怕也僅有Linux內(nèi)核項目可堪匹敵。2018年3月,Kubernetes成為CNCF旗下“畢業(yè)”的第一個項目,并榮獲2018年 OSCON最具影響力獎項。

      目前,Kubernetes保持著每年發(fā)布四個重要版本的節(jié)奏,版本的每次更新都會引入數(shù)個新特性。這種快速迭代的機制在為用戶不斷帶來驚喜的同時,也給他們在學習和使用上造成了一些困擾:相關(guān)領(lǐng)域的可參考書籍仍不豐富,互聯(lián)網(wǎng)上可以得到的眾多文檔并非源于同一個版本,以及厘清脈絡(luò)拼湊成完整的知識框架所需的時間成本較大。因此,我在課程以及直接或間接參與生產(chǎn)或測試環(huán)境的交付之余便萌生了撰寫一本Kubernetes入門、進階與實戰(zhàn)的書籍的想法,將自己學習和使用的經(jīng)驗總結(jié)、沉淀并分享給更多有此需求的技術(shù)同行,幫助大家快速找到入門路徑,降低時間成本,并迅速投入測試和生產(chǎn)之用。

      的確,在寫作過程中,Kubernetes這種快速迭代的機制,以及每每引入的新特性,在小驚喜之余帶給筆者更多的卻是真真切切的夢魘般的恐懼感:在一年多的寫作時間里,許多章節(jié)幾易其稿,卻也依然無法確保能夠涵蓋即將成為核心功能的特性,于是沮喪感幾度如影隨形,直到自我安慰著“基礎(chǔ)的核心特性基本不會發(fā)生大的變動,只要能幫助讀者弄清楚Kubernetes系統(tǒng)的基礎(chǔ)架構(gòu)及核心工作邏輯就算工夫沒有白費”之后方才釋然。于是便有了這本力圖盡量多地包羅Kubernetes系統(tǒng)目前主流特性及實踐路徑的入門和進階之書、工具之書。

      本書特色

      本書致力于幫助容器編排技術(shù)的初級和中級用戶循序漸進地理解與使用Kubernetes系統(tǒng),因此本書的編寫充分考慮到初學者進入新知識領(lǐng)域時的茫然,采用由淺入深、提綱挈領(lǐng)、再由點到面的方式講解每一個知識細節(jié)。對于每個知識點,不僅介紹了其概念和用法,還分析了為什么要有這個概念,實現(xiàn)的方式是什么,背后的邏輯為何,等等,使讀者不僅能知其然,還能知其所以然。

      本書不僅要帶領(lǐng)讀者入門,更是一本可以隨時動手加以驗證的實踐手冊,而且對于部分重要的內(nèi)容還會專門一步步地給出具體的實操案例,幫助讀者在實踐中升華對概念的理解。本書幾乎涵蓋了應(yīng)用Kubernetes系統(tǒng)的所有主流知識點,它甚至可以作為計劃考取CKA認證的讀者的配套參考圖書。

      讀者對象

      ◆云計算工程師

      ◆運維工程師

      ◆系統(tǒng)開發(fā)工程師

      ◆程序架構(gòu)師

      ◆計劃考取CKA認證的人員

      ◆其他對容器編排感興趣的人員

      如何閱讀本書

      閱讀使用本書之前,讀者需要具備Docker容器技術(shù)的基礎(chǔ)使用能力。本書邏輯上共分為五大部分,15章。

      第一部分(第1~2章),介紹Kubernetes系統(tǒng)的基礎(chǔ)概念及其基本應(yīng)用。

      第1章? 介紹容器編排系統(tǒng)出現(xiàn)的背景,以及Kubernetes系統(tǒng)的功能、特性、核心概念、系統(tǒng)組件及應(yīng)用模型。

      第2章? 講解Kubernetes的核心對象,以及直接使用命令管理資源對象的快速入門技巧。

      第二部分(第3~6章),介紹核心資源類型及其應(yīng)用。

      第3章? 介紹資源管理模型、陳述式與聲明式資源管理接口,并通過命令對比說明兩種操作方式的不同之處。

      第4章? 介紹Pod資源的常用配置、生命周期、存儲狀態(tài)和就緒狀態(tài)檢測,以及計算資源的需求及限制等。

      第5章? 介紹Pod控制器資源類型,重點講解了控制無狀態(tài)應(yīng)用的ReplicaSet、Deployment、DaemonSet控制器,并介紹了Job和CronJob控制器。

      第6章? 介紹Service和Ingress資源類型,涵蓋Service類型、功用及其實現(xiàn),以及Ingress控制器、Ingress資源的種類及其實現(xiàn),并通過案例詳細說明了Ingress資源的具體使用方式。

      第三部分(第7~9章),介紹存儲卷及StatefulSet控制器。

      第7章? 主要介紹存儲卷類型及常見存儲卷的使用方式、PV和PVC出現(xiàn)的原因及應(yīng)用,以及存儲類資源的應(yīng)用和存儲卷的動態(tài)供給。

      第8章? 介紹使用一等資源類型Conf?igMap和Secret為容器應(yīng)用提供配置及敏感信息的方式。

      第9章? 主要介紹有狀態(tài)應(yīng)用的Pod控制器資源StatefulSet,包括基礎(chǔ)應(yīng)用、動態(tài)擴縮容及更新機制等。

      第四部分(第10~11章),介紹安全相關(guān)的話題,主要涉及認證、授權(quán)、準入控制、網(wǎng)絡(luò)模型與網(wǎng)絡(luò)策略。

      第10章? 重點講解認證方式、Service Account和TLS認證、授權(quán)插件類型及RBAC,并于章節(jié)的最后介紹LimitRanger、ResourceQuota和PodSecurityPolicy三種類型的準入控制器及相關(guān)的資源類型。

      第11章? 主要介紹網(wǎng)絡(luò)插件基礎(chǔ)及f?lannel的三種后端實現(xiàn)與應(yīng)用、借助Canal插件實現(xiàn)網(wǎng)絡(luò)策略的方式,以及Calico網(wǎng)絡(luò)插件的基礎(chǔ)使用。

      第五部分(第12~15章),介紹Kubernetes系統(tǒng)的高級話題。

      第12章? 介紹Pod資源的調(diào)度策略及高級調(diào)度方式的應(yīng)用,包括節(jié)點親和、Pod資源親和以及基于污點和容忍度的調(diào)度。

      第13章? 介紹系統(tǒng)資源的擴展方式,包括自定義資源類型、自定義資源對象、自定義API及控制器、Master節(jié)點的高可用、基于Kubernetes的PaaS系統(tǒng)等話題。

      第14章? 介紹資源指標、自定義指標、監(jiān)控系統(tǒng)及HPA控制器的應(yīng)用。

      第15章? 介紹簡化應(yīng)用管理的工具Helm,并基于Helm介紹如何為Kubernetes系統(tǒng)提供統(tǒng)一的日志收集與管理工具棧EFK。

      有一定Kubernetes使用經(jīng)驗的讀者可以挑選感興趣的章節(jié)閱讀。而對于初學者,建議從基礎(chǔ)部分逐章閱讀,但構(gòu)建在Kubernetes系統(tǒng)之上的應(yīng)用多數(shù)都要求讀者能熟練使用相關(guān)領(lǐng)域的知識和技能,如果對某些內(nèi)容的理解比較困難,那么可能是由于相關(guān)知識欠缺,建議讀者通過其他資料補充學習相關(guān)知識后再閱讀本書。編撰本書的主要意圖是為初學者提供一個循序漸進的實操手冊,不過,任何讀者也都可以將它作為一本案頭的工具書隨時進行查閱。

      排版約定

      本書中所有的命令都附帶了或長格式或短格式的命令提示符,以便讀者區(qū)分文中正常使用的“#”和“$”,命令提示格式為“~]#”或“~]$”,較長的命令使用了“\”為續(xù)行符,且命令及其輸出使用了有別于正文的字體。

      更多內(nèi)容和附帶代碼

      本書相關(guān)的配置清單等都放置于https://github.com/ikubernetes/的相關(guān)倉庫中,在實踐中需要時可直接克隆至本地實驗環(huán)境中使用。

      勘誤和支持

      盡管進行授課及技術(shù)寫作已十數(shù)年,但動筆著書尚屬首次,考慮到排版印刷后的表述無可更改,整個寫作過程戰(zhàn)戰(zhàn)兢兢、如履薄冰。進行每一個關(guān)鍵話題的表述之前都查閱了大量資料,并且反復(fù)斟酌,既期望能夠?qū)⒅R點清晰、準確地加以描述,也試圖避免因自己的理解偏差而誤導(dǎo)讀者。盡管如此,由于筆者水平有限,加之編寫時間倉促,書中難免存在不妥之處,懇請讀者批評指正。如果讀者有更多的寶貴意見,請通過郵箱mage@magedu.com聯(lián)系我,期待能夠得到你們的真摯反饋,在技術(shù)之路上互勉共進。另外,本書的勘誤將會發(fā)布在筆者的博客(http://www.ilinux.io)或本書專用的GitHub主頁(https://github.com/ikubernetes)上,歡迎讀者朋友們關(guān)注并留言討論。

      參考資料

      致謝

      感謝Kubernetes社區(qū)創(chuàng)造性的勞動成果和辛苦付出,我們因此有了學習和使用如此優(yōu)秀的開源系統(tǒng)的可能性,這也是本書得以編撰的基石。

      感謝我的同事們在我寫作期間給予的支持和理解,他們的努力讓我擁有了得以放心寫作的時間和精力。感謝提供了相關(guān)行業(yè)信息并促使我下定決心開始編寫此書的張常安和張士杰先生,本書的寫作過程中也得到了他們支援的寶貴素材。

      感謝參加了我的課程(馬哥教育)的學員朋友們,大家的學習熱情及工作中源源不斷反饋而來的信息與需求在不同程度上幫助我一直保持著對技術(shù)的追求和熱忱,教學相長在此得到了充分的體現(xiàn)。

      感謝機械工業(yè)出版社華章公司高婧雅女士對本書寫作的悉心指導(dǎo),以及對我本人的包容和理解。

      最后要特別感謝我的家人,為寫作這本書,我犧牲了很多陪伴他們的時間,也正因為他們在生活中的關(guān)懷和鼓勵才使我能夠踏踏實實地完成本書內(nèi)容的編寫。

      目  錄Contents

      前言

      第1章?Kubernetes系統(tǒng)基礎(chǔ)? 1

      1.1?容器技術(shù)概述? 1

      1.1.1?容器技術(shù)的功用? 2

      1.1.2?容器簡史? 3

      1.1.3?Docker的功能限制? 4

      1.2?Kubernetes概述? 4

      1.2.1?Kubernetes簡史? 4

      1.2.2?Kubernetes特性? 5

      1.2.3?Kubernetes概念和術(shù)語? 6

      1.3?Kubernetes集群組件? 10

      1.3.1?Master組件? 10

      1.3.2?Node組件? 12

      1.3.3?核心附件? 13

      1.4?Kubernetes網(wǎng)絡(luò)模型基礎(chǔ)? 13

      1.4.1?網(wǎng)絡(luò)模型概述? 13

      1.4.2?集群上的網(wǎng)絡(luò)通信? 15

      1.5?本章小結(jié)? 16

      第2章?Kubernetes快速入門? 17

      2.1?Kubernetes的核心對象? 17

      2.1.1?Pod資源對象? 18

      2.1.2?Controller? 19

      2.1.3?Service? 20

      2.1.4?部署應(yīng)用程序的主體過程? 21

      2.2?部署Kubernetes集群? 22

      2.2.1?kubeadm部署工具? 22

      2.2.2?集群運行模式? 24

      2.2.3?準備用于實踐操作的集群環(huán)境? 25

      2.2.4?獲取集群環(huán)境相關(guān)的信息? 26

      2.3?kubectl使用基礎(chǔ)與示例? 26

      2.4?命令式容器應(yīng)用編排? 29

      2.4.1?部署應(yīng)用(Pod)? 30

      2.4.2?探查Pod及應(yīng)用詳情? 33

      2.4.3?部署Service對象? 36

      2.4.4?擴容和縮容? 38

      2.4.5?修改及刪除對象? 40

      2.5?本章小結(jié)? 41

      第3章?資源管理基礎(chǔ)? 42

      3.1?資源對象及API群組? 42

      3.1.1?Kubernetes的資源對象? 43

      3.1.2?資源及其在API中的組織形式? 46

      3.1.3?訪問Kubernetes REST API? 48

      3.2?對象類資源格式? 49

      3.2.1?資源配置清單? 50

      3.2.2?metadata嵌套字段? 51

      3.2.3?spec和status字段? 52

      3.2.4?資源配置清單格式文檔? 53

      3.2.5?資源對象管理方式? 54

      3.3?kubectl命令與資源管理? 56

      3.3.1?資源管理操作概述? 56

      3.3.2?kubectl的基本用法? 57

      3.4?管理名稱空間資源? 59

      3.4.1?查看名稱空間及其資源對象? 60

      3.4.2?管理Namespace資源? 61

      3.5?Pod資源的基礎(chǔ)管理操作? 61

      3.5.1?陳述式對象配置管理方式? 62

      3.5.2?聲明式對象配置管理方式? 64

      3.6?本章小結(jié)? 65

      第4章?管理Pod資源對象? 66

      4.1?容器與Pod資源對象? 66

      4.2?管理Pod對象的容器? 68

      4.2.1?鏡像及其獲取策略? 69

      4.2.2?暴露端口? 70

      4.2.3?自定義運行的容器化應(yīng)用? 71

      4.2.4?環(huán)境變量? 72

      4.2.5?共享節(jié)點的網(wǎng)絡(luò)名稱空間? 73

      4.2.6?設(shè)置Pod對象的安全上下文? 74

      4.3?標簽與標簽選擇器? 75

      4.3.1?標簽概述? 75

      4.3.2?管理資源標簽? 77

      4.3.3?標簽選擇器? 78

      4.3.4?Pod節(jié)點選擇器nodeSelector? 79

      4.4?資源注解? 80

      4.4.1?查看資源注解? 81

      4.4.2?管理資源注解? 82

      4.5?Pod對象的生命周期? 82

      4.5.1?Pod的相位? 82

      4.5.2?Pod的創(chuàng)建過程? 83

      4.5.3?Pod生命周期中的重要行為? 84

      4.5.4?容器的重啟策略? 87

      4.5.5?Pod的終止過程? 87

      4.6?Pod存活性探測? 88

      4.6.1?設(shè)置exec探針? 89

      4.6.2?設(shè)置HTTP探針? 90

      4.6.3?設(shè)置TCP探針? 92

      4.6.4?存活性探測行為屬性? 93

      4.7?Pod就緒性探測? 94

      4.8?資源需求及資源限制? 96

      4.8.1?資源需求? 96

      4.8.2?資源限制? 98

      4.8.3?容器的可見資源? 99

      4.8.4?Pod的服務(wù)質(zhì)量類別? 100

      4.9?本章小結(jié)? 101

      第5章?Pod控制器? 103

      5.1?關(guān)于Pod控制器? 103

      5.1.1?Pod控制器概述? 104

      5.1.2?控制器與Pod對象? 105

      5.1.3?Pod模板資源? 106

      5.2?ReplicaSet控制器? 106

      5.2.1?ReplicaSet概述? 107

      5.2.2?創(chuàng)建ReplicaSet? 108

      5.2.3?ReplicaSet管控下的Pod對象? 109

      5.2.4?更新ReplicaSet控制器? 111

      5.2.5?刪除ReplicaSet控制器資源? 114

      5.3?Deployment控制器? 114

      5.3.1?創(chuàng)建Deployment? 115

      5.3.2?更新策略? 116

      5.3.3?升級Deployment? 119

      5.3.4?金絲雀發(fā)布? 121

      5.3.5?回滾Deployment控制器下的應(yīng)用發(fā)布? 123

      5.3.6?擴容和縮容? 123

      5.4?DaemonSet控制器? 124

      5.4.1?創(chuàng)建DaemonSet資源對象? 124

      5.4.2?更新DaemonSet對象? 126

      5.5?Job控制器? 127

      5.5.1?創(chuàng)建Job對象? 128

      5.5.2?并行式Job? 129

      5.5.3?Job擴容? 130

      5.5.4?刪除Job? 130

      5.6?CronJob控制器? 131

      5.6.1?創(chuàng)建CronJob對象? 131

      5.6.2?CronJob的控制機制? 132

      5.7?ReplicationController? 133

      5.8?Pod中斷預(yù)算? 133

      5.9?本章小結(jié)? 134

      第6章?Service和Ingress? 136

      6.1?Service資源及其實現(xiàn)模型? 136

      6.1.1?Service資源概述? 136

      6.1.2?虛擬IP和服務(wù)代理? 138

      6.2?Service資源的基礎(chǔ)應(yīng)用? 140

      6.2.1?創(chuàng)建Service資源? 140

      6.2.2?向Service對象請求服務(wù)? 141

      6.2.3?Service會話粘性? 142

      6.3?服務(wù)發(fā)現(xiàn)? 143

      6.3.1?服務(wù)發(fā)現(xiàn)概述? 143

      6.3.2?服務(wù)發(fā)現(xiàn)方式:環(huán)境變量? 145

      6.3.3?ClusterDNS和服務(wù)發(fā)現(xiàn)? 146

      6.3.4?服務(wù)發(fā)現(xiàn)方式:DNS? 146

      6.4?服務(wù)暴露? 147

      6.4.1?Service類型? 147

      6.4.2?NodePort類型的Service資源? 149

      6.4.3?LoadBalancer類型的Service資源? 150

      6.4.4?ExternalName Service? 151

      6.5?Headless類型的Service資源? 152

      6.5.1?創(chuàng)建Headless Service資源? 153

      6.5.2?Pod資源發(fā)現(xiàn)? 153

      6.6?Ingress資源? 154

      6.6.1?Ingress和Ingress Controller? 154

      6.6.2?創(chuàng)建Ingress資源? 155

      6.6.3?Ingress資源類型? 157

      6.6.4?部署Ingress控制器(Nginx)? 159

      6.7?案例:使用Ingress發(fā)布tomcat? 161

      6.7.1?準備名稱空間? 161

      6.7.2?部署tomcat實例? 162

      6.7.3?創(chuàng)建Service資源? 163

      6.7.4?創(chuàng)建Ingress資源? 164

      6.7.5?配置TLS Ingress資源? 165

      6.8?本章小結(jié)? 168

      第7章?存儲卷與數(shù)據(jù)持久化? 169

      7.1?存儲卷概述? 169

      7.1.1?Kubernetes支持的存儲卷類型? 170

      7.1.2?存儲卷的使用方式? 171

      7.2?臨時存儲卷? 172

      7.2.1?emptyDir存儲卷? 172

      7.2.2?gitRepo存儲卷? 175

      7.3?節(jié)點存儲卷hostPath? 176

      7.4?網(wǎng)絡(luò)存儲卷? 178

      7.4.1?NFS存儲卷? 178

      7.4.2?RBD存儲卷? 180

      7.4.3?GlusterFS存儲卷? 182

      7.4.4?Cinder存儲卷? 183

      7.5?持久存儲卷? 184

      7.5.1?創(chuàng)建PV? 186

      7.5.2?創(chuàng)建PVC? 188

      7.5.3?在Pod中使用PVC? 190

      7.5.4?存儲類? 191

      7.5.5?PV和PVC的生命周期? 194

      7.6?downwardAPI存儲卷? 196

      7.6.1?環(huán)境變量式元數(shù)據(jù)注入? 197

      7.6.2?存儲卷式元數(shù)據(jù)注入? 199

      7.7?本章小結(jié)? 201

      第8章?配置容器應(yīng)用:Conf?igMap和Secret? 202

      8.1?容器化應(yīng)用配置方式? 202

      8.2?通過命令行參數(shù)配置容器應(yīng)用? 204

      8.3?利用環(huán)境變量配置容器應(yīng)用? 206

      8.4?應(yīng)用程序配置管理及Conf?igMap資源? 208

      8.4.1?創(chuàng)建Conf?igMap對象? 209

      8.4.2?向Pod環(huán)境變量傳遞Conf?igMap對象鍵值數(shù)據(jù)? 212

      8.4.3?Conf?igMap存儲卷? 215

      8.4.4?容器應(yīng)用重載新配置? 219

      8.4.5?使用Conf?igMap資源的注意事項? 220

      8.5?Secret資源? 221

      8.5.1?Secret概述? 221

      8.5.2?創(chuàng)建Secret資源? 222

      8.5.3?Secret存儲卷? 224

      8.5.4?imagePullSecret資源對象? 225

      8.6?本章小結(jié)? 226

      第9章?StatefulSet控制器? 227

      9.1?StatefulSet概述? 227

      9.1.1?Stateful應(yīng)用和Stateless應(yīng)用? 227

      9.1.2?StatefulSet控制器概述? 228

      9.1.3?StatefulSet的特性? 230

      9.2?StatefulSet基礎(chǔ)應(yīng)用? 231

      9.2.1?創(chuàng)建StatefulSet對象? 232

      9.2.2?Pod資源標識符及存儲卷? 234

      9.3?StatefulSet資源擴縮容? 237

      9.4?StatefulSet資源升級? 238

      9.4.1?滾動更新? 238

      9.4.2?暫存更新操作? 239

      9.4.3?金絲雀部署? 240

      9.4.4?分段更新? 241

      9.4.5?其他話題? 241

      9.5?案例:etcd集群? 242

      9.5.1?創(chuàng)建Service資源? 242

      9.5.2?etcd StatefulSet? 243

      9.6?本章小結(jié)? 247

      第10章??認證、授權(quán)與準入控制? 248

      10.1??訪問控制概述? 248

      10.1.1??用戶賬戶與用戶組? 249

      10.1.2??認證、授權(quán)與準入控制基礎(chǔ)? 250

      10.2??服務(wù)賬戶管理與應(yīng)用? 253

      10.2.1??Service Account自動化? 253

      10.2.2??創(chuàng)建服務(wù)賬戶? 255

      10.2.3??調(diào)用imagePullSecret資源對象? 256

      10.3??X.509數(shù)字證書認證? 256

      10.3.1??Kubernetes中的SSL/TLS認證? 257

      10.3.2??客戶端配置文件kubeconf?ig? 259

      《 Kubernetes進階實戰(zhàn)》

      10.3.3??TLS bootstrapping機制? 262

      10.4??基于角色的訪問控制:RBAC? 263

      10.4.1??RBAC授權(quán)插件? 264

      10.4.2??Role和RoleBinding? 266

      10.4.3??ClusterRole和ClusterRoleBin-ding? 269

      10.4.4??聚合型ClusterRole? 271

      10.4.5??面向用戶的內(nèi)建ClusterRole? 273

      10.4.6??其他的內(nèi)建ClusterRole和ClusterRoleBinding? 274

      10.5??Kubernetes Dashboard? 275

      10.5.1??部署HTTPS通信的Dashboard? 275

      10.5.2??配置token認證? 277

      10.5.3??配置kubeconf?ig認證? 277

      10.6??準入控制器與應(yīng)用示例? 279

      10.6.1??LimitRange資源與LimitRanger準入控制器? 279

      10.6.2??ResourceQuota資源與準入控制器? 281

      10.6.3??PodSecurityPolicy? 283

      10.7??本章小結(jié)? 288

      第11章??網(wǎng)絡(luò)模型與網(wǎng)絡(luò)策略? 289

      11.1??Kubernetes網(wǎng)絡(luò)模型及CNI插件? 289

      11.1.1??Docker容器的網(wǎng)絡(luò)模型? 289

      11.1.2??Kubernetes網(wǎng)絡(luò)模型? 291

      11.1.3??Pod網(wǎng)絡(luò)的實現(xiàn)方式? 293

      11.1.4??CNI插件及其常見的實現(xiàn)? 295

      11.2??f?lannel網(wǎng)絡(luò)插件? 297

      11.2.1??f?lannel的配置參數(shù)? 297

      11.2.2??VxLAN后端和direct routing? 298

      11.2.3??host-gw后端? 301

      11.3??網(wǎng)絡(luò)策略? 302

      11.3.1??網(wǎng)絡(luò)策略概述? 302

      11.3.2??部署Canal提供網(wǎng)絡(luò)策略功能? 303

      11.3.3??配置網(wǎng)絡(luò)策略? 305

      11.3.4??管控入站流量? 306

      11.3.5??管控出站流量? 308

      11.3.6??隔離名稱空間? 310

      11.3.7??網(wǎng)絡(luò)策略應(yīng)用案例? 311

      11.4??Calico網(wǎng)絡(luò)插件? 315

      11.4.1??Calico工作特性? 316

      11.4.2??Calico系統(tǒng)架構(gòu)? 318

      11.4.3??Calico部署要點? 320

      11.4.4??部署Calico提供網(wǎng)絡(luò)服務(wù)和網(wǎng)絡(luò)策略? 321

      11.4.5??客戶端工具calicoctl? 324

      11.5??本章小結(jié)? 325

      第12章??Pod資源調(diào)度? 326

      12.1??Kubernetes調(diào)度器概述? 326

      12.1.1??常用的預(yù)選策略? 327

      12.1.2??常用的優(yōu)選函數(shù)? 330

      12.2??節(jié)點親和調(diào)度? 332

      12.2.1??節(jié)點硬親和性? 332

      12.2.2??節(jié)點軟親和性? 335

      12.3??Pod資源親和調(diào)度? 337

      12.3.1??位置拓撲? 338

      12.3.2??Pod硬親和調(diào)度? 338

      12.3.3??Pod軟親和調(diào)度? 341

      12.3.4??Pod反親和調(diào)度? 342

      12.4??污點和容忍度? 343

      12.4.1??定義污點和容忍度? 344

      12.4.2??管理節(jié)點的污點? 345

      12.4.3??Pod對象的容忍度? 346

      12.4.4??問題節(jié)點標識? 347

      12.5??Pod優(yōu)選級和搶占式調(diào)度? 347

      12.6??本章小結(jié)? 348

      第13章??Kubernetes系統(tǒng)擴展? 349

      13.1??自定義資源類型(CRD)? 349

      13.1.1??創(chuàng)建CRD對象? 350

      13.1.2??自定義資源格式驗證? 351

      13.1.3??子資源? 353

      13.1.4??使用資源類別? 355

      13.1.5??多版本支持? 355

      13.1.6??自定義控制器基礎(chǔ)? 356

      13.2??自定義API Server? 359

      13.2.1??自定義API Server概述? 359

      13.2.2??APIService對象? 360

      13.3??Kubernetes集群高可用? 361

      13.3.1??etcd高可用? 362

      13.3.2??Controller Manager和Scheduler高可用? 363

      13.4??Kubernetes的部署模式? 364

      13.4.1??關(guān)鍵組件? 365

      13.4.2??常見的部署模式? 366

      13.5??容器時代的DevOps概述? 369

      13.5.1??容器:DevOps協(xié)作的基礎(chǔ)? 369

      13.5.2??泛型端到端容器應(yīng)用程序生命周期工作流? 370

      13.5.3??基于Kubernetes的DevOps? 371

      13.6??本章小結(jié)? 372

      第14章??資源指標及HPA控制器? 373

      14.1??資源監(jiān)控及資源指標? 373

      14.1.1??資源監(jiān)控及Heapster? 374

      14.1.2??新一代監(jiān)控架構(gòu)? 376

      14.2??資源指標及其應(yīng)用? 378

      14.2.1??部署metrics-server? 378

      14.2.2??kubectl top命令? 380

      14.3??自定義指標與Prometheus? 381

      14.3.1??Prometheus概述? 382

      14.3.2??部署Prometheus監(jiān)控系統(tǒng)? 384

      14.3.3??自定義指標適配器k8s-prometheus-adapter? 388

      14.4??自動彈性縮放? 390

      14.4.1??HPA概述? 390

      14.4.2??HPA(v1)控制器? 391

      14.4.3??HPA(v2)控制器? 393

      14.5??本章小結(jié)? 397

      第15章??Helm程序包管理器? 398

      15.1??Helm基礎(chǔ)? 398

      15.1.1??Helm的核心術(shù)語? 399

      15.1.2??Helm架構(gòu)? 400

      15.1.3??安裝Helm Client? 400

      15.1.4??安裝Tiller server? 401

      15.1.5??Helm快速入門? 402

      15.2??Helm Charts? 405

      15.2.1??Charts文件組織結(jié)構(gòu)? 405

      15.2.2??Chart.yaml文件組織格式? 406

      15.2.3??Charts中的依賴關(guān)系? 407

      15.2.4??模板和值? 408

      15.2.5??其他需要說明的話題? 409

      15.2.6??自定義Charts? 410

      15.3??Helm實踐:部署EFK日志管理系統(tǒng)? 415

      15.3.1??ElasticSearch集群? 416

      15.3.2??日志采集代理f?luentd? 421

      15.3.3??可視化組件Kibana? 422

      15.4??本章小結(jié)? 424

      附錄A 部署Kubernetes集群? 425

      附錄B 部署GlusterFS及Heketi? 437

      馬永亮

      2018年10月

      網(wǎng)絡(luò) Kubernetes

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:WPS表格辦公—給指定數(shù)據(jù)添加刪除線(wps表格怎么添加刪除線)
      下一篇:甘特圖的軟件
      相關(guān)文章
      无码乱人伦一区二区亚洲| 亚洲综合成人网在线观看| 亚洲国产精品乱码在线观看97| 久久精品国产精品亚洲艾草网 | 亚洲日韩AV一区二区三区四区| 亚洲国产模特在线播放| 亚洲黄网站wwwwww| 91亚洲国产成人久久精品网站| 久久久亚洲欧洲日产国码二区| 久久久久亚洲AV成人片| 亚洲色图.com| 亚洲伊人久久大香线蕉啊| 亚洲免费一级视频| 亚洲jjzzjjzz在线播放| 亚洲国产成人精品激情| 亚洲一卡2卡3卡4卡乱码 在线 | 国产亚洲色婷婷久久99精品| 国产亚洲精品一品区99热| 亚洲AV综合色区无码另类小说 | 久久综合亚洲色hezyo| 久久综合亚洲色hezyo| 亚洲国产a级视频| 亚洲综合区小说区激情区| 国产亚洲精品激情都市| 亚洲人成网77777亚洲色| 久久精品7亚洲午夜a| 亚洲韩国在线一卡二卡| 亚洲人成电影院在线观看| 亚洲人成77777在线观看网| 亚洲欧洲日韩极速播放| 国产精品国产亚洲区艳妇糸列短篇 | 国产成人综合亚洲| 亚洲精品视频在线观看你懂的| 久久久久亚洲av毛片大| 亚洲AV一宅男色影视| 亚洲欧洲日产国码www| 亚洲中文无码mv| 亚洲第一永久AV网站久久精品男人的天堂AV | 亚洲国产成a人v在线观看 | 亚洲综合无码一区二区| jlzzjlzz亚洲jzjzjz|