《再也不踩坑的kubernetes實戰指南》2019年10月清華大學出版社出版的圖書,作者是杜寬。
基本介紹
- 書名:再也不踩坑的kubernetes實戰指南
- 作者:杜寬
- ISBN:9787302534808
- 定價:89元
- 出版社:清華大學出版社
- 出版時間:2019.10
內容簡介,圖書目錄,
內容簡介
本書以實戰為主線,深入淺出地介紹了Kubernetes在企業生產環境中的套用。全書共6章,第1章講解Kubernetes的高可用安裝,分為kubeadm和二進制安裝方式,可以讓讀者快速上手,了解Kubernetes的架構模式。第2章介紹了Kubernetes的理論基礎。第3章主要講解Kubernetes常見套用的容器化,並部署至Kubernetes集群實現高可用,同時介紹了Kubernetes的各個組件和資源。第4章主要介紹持續集成和持續部署,包括Jenkins最新的功能Pipeline的使用,從Pipeline的語法到項目實操,傳統Java和Spring Cloud套用的容器化以及自動化構建部署。第5章主要講解了Kubernetes的Nginx Ingress的安裝和常用配置,以適用於生產環境的各種需求。第6章講解了備受關注的Server Mesh,使用Istio代替微服務架構中的網路功能、實現限速、分流和路由等內容。
本書技術先進,注重實操,解決了Kubernetes在生產環境中使用和安裝過程中遇到的大量問題,本書特別適合想儘快將Kubernetes套用於其公司業務中的Kubernetes初學者、開發人員、運維工程師和架構師使用。
圖書目錄
第1章 Kubernetes高可用安裝 1
1.1 KUBEADM高可用安裝K8S集群(1.11.X和1.12.X) 1
1.1.1 基本環境配置 2
1.1.2 核心升級 3
1.1.3 基本組件安裝 5
1.1.4 集群初始化 6
1.1.5 Calico組件的安裝 13
1.1.6 高可用Master 14
1.1.7 Node節點的配置 15
1.1.8 Metrics-Server部署 16
1.1.9 Dashboard部署 17
1.2 KUBEADM高可用安裝K8S集群(1.13.X和1.14.X) 19
1.2.1 基本組件的安裝 19
1.2.2 集群初始化 20
1.2.3 Calico組件的安裝 22
1.2.4 高可用Master 22
1.2.5 Node節點的配置 25
1.3 二進制高可用安裝K8S集群(1.13.X和1.14.X) 26
1.3.1 基本組件安裝 27
1.3.2 CNI安裝 28
1.3.3 生成證書 29
1.3.4 系統組件配置 33
1.3.5 TLS Bootstrapping配置 40
1.3.6 Node節點的配置 42
1.3.7 Kube-Proxy配置 45
1.3.8 Calico配置 47
1.3.9 CoreDNS的配置 48
1.3.10 Metrics-Server配置 49
1.3.11 Dashboard配置 49
1.4 小結 51
第2章 Docker及Kubernetes基礎 52
2.1 DOCKER基礎 52
2.1.1 Docker介紹 52
2.1.2 Docker基本命令 52
2.1.3 Dockerfile的編寫 59
2.2 KUBERNETES基礎 61
2.2.1 Master節點 61
2.2.2 Node節點 62
2.2.3 Pod 62
2.2.4 Label和 Selector 66
2.2.5 Replication Controller和ReplicaSet 68
2.2.6 Deployment 70
2.2.7 StatefulSet 77
2.2.8 DaemonSet 87
2.2.9 ConfigMap 91
2.2.10 Secret 99
2.2.11 HPA 105
2.2.12 Storage 107
2.2.13 Service 120
2.2.14 Ingress 124
2.2.15 Taint和Toleration 127
2.2.16 RBAC 131
2.2.17 CronJob 138
2.3 小結 140
第3章 Kubernetes常見套用安裝 141
3.1 安裝GFS到K8S集群中 141
3.1.1 準備工作 141
3.1.2 創建GFS集群 142
3.1.3 創建Heketi服務 142
3.1.4 創建GFS集群 143
3.1.5 創建StorageClass 148
3.1.6 測試使用GFS動態存儲 148
3.1.7 測試數據 149
3.1.8 測試Deployment 150
3.2 安裝HELM到K8S集群中 153
3.2.1 基本概念 153
3.2.2 安裝Helm 154
3.2.3 Helm的使用 155
3.3 安裝REDIS集群模式到K8S集群中 156
3.3.1 各檔案介紹 156
3.3.2 創建Redis命名空間 161
3.3.3 創建Redis集群PV 161
3.3.4 創建集群 161
3.3.5 創建slot 162
3.4 安裝RABBITMQ集群到K8S集群中 163
3.4.1 各檔案解釋 163
3.4.2 配置NFS 167
3.4.3 創建集群 167
3.4.4 查看資源 167
3.4.5 訪問測試 168
3.5 安裝GITLAB到K8S集群中 168
3.5.1 各檔案介紹 169
3.5.2 創建GitLab 173
3.5.3 訪問GitLab 173
3.5.4 創建項目 174
3.5.5 創建用戶許可權 176
3.5.6 添加SSH Key 178
3.5.7 項目開發 179
3.6 安裝JENKINS到K8S集群中 182
3.6.1 各檔案介紹 182
3.6.2 安裝Jenkins 184
3.6.3 訪問Jenkins 185
3.7 安裝HARBOR到K8S集群中 186
3.7.1 安裝Harbor 186
3.7.2 訪問Harbor 189
3.7.3 在K8S中使用Harbor 190
3.8 安裝PROMETHEUS+GRAFANA到K8S集群中 192
3.8.1 修改配置信息 192
3.8.2 一鍵安裝Prometheus 192
3.8.3 驗證安裝 194
3.8.4 訪問測試 195
3.8.5 卸載 197
3.8.6 監控ElasticSearch集群 197
3.8.7 監控報警配置實戰 203
3.9 安裝EFK到K8S集群中 205
3.9.1 對節點打標籤(Label) 205
3.9.2 創建持久化卷 206
3.9.3 創建集群 206
3.9.4 訪問Kibana 207
3.10 小結 208
第4章 持續集成與持續部署 209
4.1 CI/CD介紹 209
4.1.1 CI和CD的區別 209
4.1.2 持續集成(CI) 210
4.1.3 持續交付(CD) 210
4.1.4 持續部署 210
4.2 JENKINS 流水線介紹 211
4.2.1 什麼是流水線 211
4.2.2 Jenkins流水線概念 211
4.2.3 聲明式流水線 212
4.2.4 腳本化流水線 212
4.2.5 流水線示例 213
4.3 PIPELINE語法 214
4.3.1 聲明式流水線 214
4.3.2 腳本化流水線 223
4.4 JENKINSFILE的使用 224
4.4.1 創建Jenkinsfile 224
4.4.2 處理Jenkinsfile 227
4.5 GITLAB+ JENKINS +HARBOR+KUBERNETES集成套用 233
4.5.1 基本概念 233
4.5.2 基本配置 233
4.5.3 新建任務(Job) 235
4.5.4 Jenkins憑據的使用 236
4.6 自動化構建JAVA套用 238
4.6.1 定義Dockerfile 238
4.6.2 定義Jenkinsfile 238
4.6.3 定義Deployment 240
4.6.4 Harbor項目創建 241
4.6.5 創建任務(Job) 242
4.6.6 執行構建 243
4.7 自動化構建NODEJS套用 247
4.7.1 定義Dockerfile 247
4.7.2 定義Deployment 247
4.7.3 定義Jenkinsfile 248
4.8 自動化構建SPRING CLOUD套用 250
4.8.1 自動化構建Eureka 250
4.8.2 自動化構建Config 255
4.8.3 自動化構建Zuul 259
4.9 WEBHOOK介紹 262
4.9.1 安裝Webhook外掛程式 262
4.9.2 配置Jenkins 263
4.9.3 配置GitLab 263
4.10 自動化構建常見問題的解決 264
4.10.1 解決代碼拉取速度慢的問題 265
4.10.2 解決Maven構建慢的問題 266
4.10.3 解決NPM Install的問題 267
4.11 小結 269
第5章 Nginx Ingress安裝與配置 270
5.1 NGINX INGRESS的安裝 270
5.2 NGINX INGRESS的簡單使用 271
5.3 NGINX INGRESS REDIRECT 272
5.4 NGINX INGRESS REWRITE 273
5.5 NGINX INGRESS錯誤代碼重定向 274
5.6 NGINX INGRESS SSL 274
5.7 NGINX INGRESS匹配請求頭 275
5.8 NGINX INGRESS基本認證 277
5.9 NGINX INGRESS黑/白名單 278
5.9.1 配置黑名單 278
5.9.2 配置白名單 278
5.10 NGINX INGRESS速率限制 279
5.11 使用NGINX實現灰度/金絲雀發布 280
5.11.1 創建v1版本 280
5.11.2 創建v2版本 281
5.11.3 創建Ingress 281
5.11.4 測試灰度發布 282
5.12 小結 282
第6章 Server Mesh服務格線 283
6.1 服務格線的基本概念 283
6.2 服務格線產品 284
6.3 ISTIO介紹 285
6.3.1 Istio架構 285
6.3.2 名詞解釋 286
6.3.3 流量管理 286
6.4 ISTIO的安裝 290
6.4.1 安裝檔案下載 290
6.4.2 安裝Istio 290
6.4.3 配置自動注入sidecar 291
6.5 ISTIO配置請求路由 291
6.6 ISTIO熔斷 293
6.6.1 創建測試用例 293
6.6.2 配置熔斷規則 293
6.6.3 測試熔斷 294
6.7 ISTIO故障注入 295
6.7.1 基於HTTP延遲觸發故障 295
6.7.2 使用HTTP Abort觸發故障 299
6.8 ISTIO速率限制 299
6.8.1 配置速率限制 299
6.8.2 測試速率限制 302
6.9 小結 302