《Linux云計(jì)算Kubernetes實(shí)戰(zhàn)》從實(shí)用的角度出發(fā),詳細(xì)介紹了Kubernetes的相關(guān)理論與應(yīng)用,包括Kubernetes組件概念、Kubernetes云計(jì)算平臺(tái)配置實(shí)戰(zhàn)、Kubernetes企業(yè)網(wǎng)絡(luò)Flannel實(shí)戰(zhàn)、Kubernetes核心組件services實(shí)戰(zhàn)、Kubernetes Pod容器升級實(shí)戰(zhàn)、Kubernetes NFS持久化存儲(chǔ)實(shí)戰(zhàn)、Kubernetes CephFS持久化存儲(chǔ)實(shí)戰(zhàn)、Kubernetes Ceph RBD持久化存儲(chǔ)實(shí)戰(zhàn)、Prometheus監(jiān)控Kubernetes實(shí)戰(zhàn)、Kubernetes etcd服務(wù)實(shí)戰(zhàn)、Kubernetes HAProxy高可用集群和Kubernetes配置故障實(shí)戰(zhàn)。 《Linux云計(jì)算Kubernetes實(shí)戰(zhàn)》免費(fèi)提供與書中內(nèi)容相關(guān)的視頻課程講解,以指導(dǎo)讀者深入地進(jìn)行學(xué)習(xí),詳見前言中的說明。 《Linux云計(jì)算Kubernetes實(shí)戰(zhàn)》既可作為高等學(xué)校計(jì)算機(jī)相關(guān)專業(yè)的教材,也可作為系統(tǒng)管理員、網(wǎng)絡(luò)管理員、Linux運(yùn)維工程師及網(wǎng)站開發(fā)、測試、設(shè)計(jì)等人員的參考用書。
本叢書融入作者十多年Linux運(yùn)維經(jīng)驗(yàn),盡是干貨。通過對Linux技術(shù)領(lǐng)域重要知識(shí)點(diǎn)的剖析及簡單明了的實(shí)例介紹,幫助讀者在較短的時(shí)間內(nèi)掌握Linux云計(jì)算相關(guān)運(yùn)維技能,成為專業(yè)的Linux高級技術(shù)人才。書中結(jié)構(gòu)清晰,內(nèi)容全面,由淺入深,講解很詳細(xì),是難得的將理論 概念 實(shí)戰(zhàn)結(jié)合于一體的書籍,十分適合作為手邊的實(shí)戰(zhàn)參考書,相信能給讀者帶來新的想法和收獲。
Linux 是當(dāng)今三大操作系統(tǒng)(Windows、macOS、Linux)之一,其創(chuàng)始人是林納斯·托瓦茲①。
林納斯·托瓦茲 21 歲時(shí)用 4 個(gè)月的時(shí)間首次創(chuàng)建了 Linux 內(nèi)核,于 1991 年 10 月 5 日正式對
外發(fā)布。Linux 系統(tǒng)繼承了 UNIX 系統(tǒng)以網(wǎng)絡(luò)為核心的思想,是一個(gè)性能穩(wěn)定的多用戶網(wǎng)絡(luò)操
作系統(tǒng)。
20 世紀(jì) 90 年代至今,互聯(lián)網(wǎng)飛速發(fā)展,IT 引領(lǐng)時(shí)代潮流,而 Linux 系統(tǒng)是一切 IT 的基石,
其應(yīng)用場景涉及方方面面,小到個(gè)人電腦、智能手環(huán)、智能手表、智能手機(jī)等設(shè)備,大到服務(wù)
器、云計(jì)算、大數(shù)據(jù)、人工智能、數(shù)字貨幣、區(qū)塊鏈等領(lǐng)域。
為什么寫《Linux 云計(jì)算Kubernetes 實(shí)戰(zhàn)》這本書?這要從我的經(jīng)歷說起。我出生在貴
州省一個(gè)貧困的小山村,從小經(jīng)歷了砍柴、放牛、挑水、做飯,日出而作、日落而歸的樸素生
活,看到父母一輩子都生活在小山村里,沒有見過大城市,所以從小立志要走出大山,要讓父
母過上幸福的生活。正是這樣的信念讓我不斷地努力。大學(xué)畢業(yè)至今,我在北漂的 IT 運(yùn)維
路上已走過了十多年:從初創(chuàng)小公司到國有企業(yè)、機(jī)關(guān)單位,再到圖吧、研修網(wǎng)、京東商城等
IT 企業(yè),分別擔(dān)任過 Linux 運(yùn)維工程師、Linux 運(yùn)維架構(gòu)師、運(yùn)維經(jīng)理,直到現(xiàn)在創(chuàng)辦的京峰教
育培訓(xùn)機(jī)構(gòu)。
一路走來,很感謝生命中遇到的每一個(gè)人,是大家的幫助,讓我不斷地進(jìn)步和成長,也讓
我明白了一個(gè)人活著不應(yīng)該只為自己和自己的家人,還要考慮到整個(gè)社會(huì),哪怕只能為社會(huì)貢
獻(xiàn)一點(diǎn)點(diǎn)價(jià)值,人生就是精彩的。
為了幫助更多的人通過技術(shù)改變自己的命運(yùn),我決定和團(tuán)隊(duì)同事一起編寫這本書。雖然市
面上關(guān)于 Linux 的書籍有很多,但是很難找到一本關(guān)于 Kubernetes 組件概念、Kubernetes 平臺(tái)配
置實(shí)戰(zhàn)、Kubernetes 企業(yè)網(wǎng)絡(luò) Flannel 實(shí)戰(zhàn)、Kubernetes 核心組件 services 實(shí)戰(zhàn)、Kubernetes Pod
容器升級實(shí)戰(zhàn)、Kubernetes NFS 持久化存儲(chǔ)實(shí)戰(zhàn)、Kubernetes CephFS 持久化存儲(chǔ)實(shí)戰(zhàn)、
① 創(chuàng)始人全稱是 Linus Benedict Torvalds(林納斯·本納第克特·托瓦茲)。
II Linux 云計(jì)算Kubernetes 實(shí)戰(zhàn)
Kubernetes Ceph RBD 持久化存儲(chǔ)實(shí)戰(zhàn)、Prometheus 監(jiān)控 Kubernetes 實(shí)戰(zhàn)、Kubernetes etcd 服務(wù)
實(shí)戰(zhàn)、Kubernetes HAProxy高可用集群和 Kubernetes 配置故障實(shí)戰(zhàn)等的詳細(xì)、全面的主流技術(shù)
書籍,這就是編寫本書的初衷。
配套資源
程序代碼、面試題目、學(xué)習(xí)路徑、工具手冊、簡歷模板等資料,請掃描下方二維碼下載
或者到清華大學(xué)出版社官方網(wǎng)站本書頁面下載。
配套資源
作者精心錄制了與 Linux 開發(fā)相關(guān)的視頻課程(3000 分鐘,144 集),便于讀者自學(xué)。掃
描封底文泉課堂刮刮卡中的二維碼進(jìn)行綁定后即可觀看(注:視頻內(nèi)容僅供學(xué)習(xí)參
考,與書中內(nèi)容并非一一對應(yīng))。
雖然已花費(fèi)大量的時(shí)間和精力核對書中的代碼和內(nèi)容,但難免存在紕漏,懇請讀者批評
指正。
吳光科
2023 年 4 月
前 言
致謝
ACKNOWLEDGEMENT
感謝 Linux 之父 Linus Benedict Torvalds,他不僅創(chuàng)造了 Linux 系統(tǒng),還影響了整個(gè)開源世界,
也影響了我的一生。
感謝我親愛的父母,含辛茹苦地?fù)狃B(yǎng)我們兄弟三人,是他們對我無微不至的照顧,讓我有
更多的精力和動(dòng)力去工作,去幫助更多的人。
感謝吳俊、李芬倫、陳權(quán)志、胡智超、焦偉、曾地長、孫峰、黃超、趙敬星、曾令軍、張
杰、丁劉倩、劉剄波、班風(fēng)侖及其他摯友多年來對我的信任和鼓勵(lì)。
感謝騰訊課堂所有的課程經(jīng)理及平臺(tái)老師,感謝 51CTO 副總裁一休及全體工作人員對我及
京峰教育培訓(xùn)機(jī)構(gòu)的大力支持。
感謝京峰教育培訓(xùn)機(jī)構(gòu)的每位學(xué)員對我的支持和鼓勵(lì),希望他們都學(xué)有所成,最終成為社
會(huì)的中流砥柱。感謝京峰教育首席運(yùn)營官蔡正雄,感謝京峰教育培訓(xùn)機(jī)構(gòu)的辛老師、朱老師、
張老師、關(guān)老師、兮兮老師、小江老師、可馨老師等全體老師和助教、班長、副班長,是他們
的大力支持,讓京峰教育能夠幫助更多的學(xué)員。
最后要感謝我的愛人黃小紅,是她一直在背后默默地支持我、鼓勵(lì)我,讓我有更多的精力
和時(shí)間去完成這本書。
吳光科
2023 年 4 月
第 1 章 Kubernetes 組件概念 . 1
1.1 云計(jì)算概念 .1
1.2 云計(jì)算技術(shù)的分類 1
1.3 Kubernetes 入門及概念介紹.2
1.4 Kubernetes 平臺(tái)組件概念 3
1.5 Kubernetes 工作原理剖析 4
1.6 Pod 概念剖析 7
1.7 label 概念剖析.8
1.8 Replication Controller 概念剖析 8
1.9 service 概念剖析9
1.10 node 概念剖析 .10
1.11 Kubernetes volume 概念剖析.10
1.12 Deployment 概念剖析.11
1.13 DaemonSet 概念剖析11
1.14 StatefulSet 概念剖析.11
1.15 ConfigMap 概念剖析 12
1.16 Secrets 概念剖析13
1.17 CronJob 概念剖析 14
1.18 Kubernetes 證書剖析和制作實(shí)戰(zhàn) .15
第 2 章 Kubernetes 云計(jì)算平臺(tái)配置實(shí)戰(zhàn) . 25
2.1 Kubernetes 節(jié)點(diǎn) hosts 及防火墻設(shè)置25
2.2 Linux 內(nèi)核參數(shù)設(shè)置和優(yōu)化 .26
2.3 Docker 虛擬化案例實(shí)戰(zhàn).26
2.4 Kubernetes 添加部署源27
2.5 Kubernetes Kubeadm 案例實(shí)戰(zhàn).28
2.6 Kubernetes master 節(jié)點(diǎn)實(shí)戰(zhàn) .30
2.7 Kubernetes 集群節(jié)點(diǎn)和刪除.31
2.8 Kubernetes 節(jié)點(diǎn)網(wǎng)絡(luò)配置 31
2.9 Kubernetes 開啟 IPVS 模式 39
2.10 Kubernetes 集群故障排錯(cuò) 40
VI Linux 云計(jì)算Kubernetes 實(shí)戰(zhàn)
2.11 Kubernetes 集群節(jié)點(diǎn)移除 40
2.12 etcd 分布式案例操作 .40
第 3 章 Kubernetes 企業(yè)網(wǎng)絡(luò) Flannel 實(shí)戰(zhàn). 42
3.1 Flannel 工作原理.42
3.2 Flannel 架構(gòu)介紹.43
3.3 Kubernetes Dashboard UI 實(shí)戰(zhàn) 44
3.4 Kubernetes YAML 文件詳解.47
3.5 kubectl 常見指令操作49
3.6 Kubernetes 本地私有倉庫實(shí)戰(zhàn).50
第 4 章 Kubernetes 核心組件 service 實(shí)戰(zhàn). 52
4.1 Kubernetes service 概念52
4.2 Kubernetes service 實(shí)現(xiàn)方式.53
4.3 service 實(shí)戰(zhàn):ClusterIP 案例演練 54
4.4 service 實(shí)戰(zhàn):NodePort 案例演練.55
4.5 service 實(shí)戰(zhàn):LoadBalancer 案例演練 56
4.6 service 實(shí)戰(zhàn):Ingress 案例演練58
4.7 Kubernetes Traefik 案例實(shí)戰(zhàn) 63
第 5 章 Kubernetes 容器升級實(shí)戰(zhàn) 73
5.1 Kubernetes 容器升級概念 73
5.2 Kubernetes 容器升級實(shí)現(xiàn)方式.73
5.3 Kubernetes 容器升級測試 75
5.4 Kubernetes 容器升級驗(yàn)證 76
5.5 Kubernetes 容器升級回滾 77
5.6 Kubernetes 滾動(dòng)升級和回滾原理 .78
第 6 章 Kubernetes NFS 持久化存儲(chǔ)實(shí)戰(zhàn) . 82
6.1 Kubernetes 服務(wù)運(yùn)行狀態(tài) 82
6.2 Kubernetes 存儲(chǔ)系統(tǒng) .83
6.3 Kubernetes 存儲(chǔ)綁定的概念.84
6.4 PV 的訪問模式84
6.5 Kubernetes NFS 靜態(tài)存儲(chǔ)模式86
6.6 PVC 存儲(chǔ)卷創(chuàng)建 .87
6.7 Nginx 整合 PV 存儲(chǔ)卷 .88
6.8 Kubernetes NFS 動(dòng)態(tài)存儲(chǔ)模式90
6.9 NFS 插件配置實(shí)戰(zhàn) 91
第 7 章 Kubernetes CephFS 持久化存儲(chǔ)實(shí)戰(zhàn) . 96
7.1 Kubernetes CephFS 靜態(tài)存儲(chǔ)模式.96
目錄 VII
7.2 PV 存儲(chǔ)卷創(chuàng)建96
7.3 PVC 存儲(chǔ)卷創(chuàng)建 .97
7.4 Nginx 整合 CephFS PV 存儲(chǔ)卷 .98
7.5 Kubernetes CephFS 動(dòng)態(tài)存儲(chǔ)模式. 100
7.6 CephFS 動(dòng)態(tài)插件配置實(shí)戰(zhàn) 101
第 8 章 Kubernetes Ceph RBD 持久化存儲(chǔ)實(shí)戰(zhàn) . 105
8.1 Kubernetes Ceph RBD 靜態(tài)存儲(chǔ)模式. 105
8.2 PV 存儲(chǔ)卷創(chuàng)建 105
8.3 PVC 存儲(chǔ)卷創(chuàng)建 . 107
8.4 Nginx 整合 Ceph PV 存儲(chǔ)卷 . 107
8.5 Kubernetes Ceph RBD 動(dòng)態(tài)存儲(chǔ)模式. 109
8.6 Ceph RBD 插件配置實(shí)戰(zhàn) . 110
第 9 章 Prometheus 監(jiān)控 Kubernetes 實(shí)戰(zhàn) 117
9.1 Prometheus 監(jiān)控優(yōu)點(diǎn) . 117
9.2 Prometheus 監(jiān)控特點(diǎn) . 118
9.3 Prometheus 組件實(shí)戰(zhàn) . 118
9.4 Prometheus 體系結(jié)構(gòu) . 119
9.5 Prometheus 工作流程 . 120
9.6 Prometheus 和 Kubernetes 背景. 120
9.7 Kubernetes 集群部署 node-exporter 121
9.8 Kubernetes 集群部署 Prometheus 122
9.9 Kubernetes 集群部署 Grafana . 129
9.10 Kubernetes 配置和整合 Prometheus 131
9.11 Kubernetes Prometheus 報(bào)警設(shè)置 . 135
9.12 Kubernetes Alertmanager 實(shí)戰(zhàn). 136
9.13 Alertmanager 實(shí)戰(zhàn)部署. 140
第 10 章 Kubernetes etcd 服務(wù)實(shí)戰(zhàn) 146
10.1 etcd 和 ZK 服務(wù)概念 146
10.2 etcd的使用場景 147
10.3 etcd讀寫性能 147
10.4 etcd工作原理 147
10.5 etcd選主. 148
10.6 etcd日志復(fù)制 148
10.7 etcd安全性 149
10.8 etcd使用案例 150
10.9 etcd接口使用 150
VIII Linux 云計(jì)算Kubernetes 實(shí)戰(zhàn)
第 11 章 Kubernetes HAProxy 高可用集群 . 151
11.1 Kubernetes 高可用集群概念. 151
11.2 Kubernetes 高可用工作原理. 151
11.3 HAProxy 安裝配置. 152
11.4 配置 Keepalived 服務(wù). 156
11.5 Keepalived master 配置實(shí)戰(zhàn) 157
11.6 Keepalived Backup 配置實(shí)戰(zhàn) 158
11.7 創(chuàng)建 HAProxy 檢查腳本. 160
11.8 HAProxy Keepalived 驗(yàn)證 160
11.9 初始化 master 集群 161
11.10 Kubernetes Dashboard UI 實(shí)戰(zhàn) 163
第 12 章 Kubernetes 配置故障實(shí)戰(zhàn) 166
12.1 etcd 配置中心故障錯(cuò)誤一 166
12.2 etcd 配置中心故障錯(cuò)誤二 167
12.3 Pod infrastructure 故障錯(cuò)誤三. 167
12.4 Docker 虛擬化故障錯(cuò)誤四 . 168
12.5 Docker 虛擬化故障錯(cuò)誤五 . 168
12.6 Dashboard API 故障錯(cuò)誤六 168
12.7 Dashboard 網(wǎng)絡(luò)訪問故障錯(cuò)誤七 169