幫助中心 | 我的帳號 | 關於我們

雲原生Kubernetes全棧架構師實戰

  • 作者:杜寬|責編:王金柱
  • 出版社:清華大學
  • ISBN:9787302603887
  • 出版日期:2022/05/01
  • 裝幀:平裝
  • 頁數:492
人民幣:RMB 138 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書以一個Kubernetes工程師的視角,全面系統地介紹Kubernetes常見的知識點、企業應用實踐及運維管理方法。本書共分18章,第1、2章介紹如何快速搭建高可用的Kubernetes集群;第3?7章介紹Docker的基礎和鏡像的製作優化,以及Kubernetes的基礎概念(Master、Node和Pod)、核心調度資源(Deployment、StatefulSet、DaemonSet、CronJob)、服務發布(Service和Ingress)和配置管理(ConfigMap和Secret)。第8?11章主要介紹Kubernetes的持久化存儲、動態存儲、CSI、高級調度(容忍、污點和親和力)、服務質量、許可權管理、Kubernetes資源配額管理。第12、13章主要介紹雲原生存儲、中間件容器化、Operator和Helm的使用。第14?16章主要介紹針對Kubernetes的日誌收集(EFK)、監控告警(Prometheus和Grafana)、生產級服務發布Ingress的使用。第17章主要介紹基於Kubernetes、Jenkins、Harbor、GitLab等工具建設生產級的DevOps平台,實現開發、測試、UAT、生產環境的流水線設計。第18章主要介紹服務網格Istio的使用,實現對Kubernetes內部服務的細粒度流量管理。
    本書從概念到實踐,從手工到自動化,內容翔實且豐富,其中的範例與項目均在實踐中多次驗證,可直接用於生產環境。本書適合Kubernetes初學者、開發人員、運維人員、架構師使用,也可以作為培訓機構和大專院校的教學用書。

作者介紹
杜寬|責編:王金柱
    杜寬,Kubernetes技術愛好者,現就職於國內某知名集團公司,主要負責Kubernetes架構、業務容器化設計等工作。

目錄
第1篇  安裝篇
  第1章  Kubeadm安裝高可用K8s集群
    1.1  基本環境配置
    1.2  內核配置
    1.3  K8s組件和Runtime安裝
      1.3.1  Containerd作為Runtime
      1.3.2  Docker作為Runtime
      1.3.3  安裝Kubernetes組件
    1.4  高可用組件安裝
    1.5  集群初始化
    1.6  Master實現高可用
    1.7  Node節點的配置
    1.8  Token過期處理
    1.9  Calico組件的安裝
    1.10  Metrics部署
    1.11  Dashboard部署
      1.11.1  安裝Dashboard
      1.11.2  登錄Dashboard
    1.12  注意事項
    1.13  小結
  第2章  二進位安裝高可用K8s集群
    2.1  基本環境配置
    2.2  內核配置
    2.3  基本組件安裝
      2.3.1  Containerd作為Runtime
      2.3.2  Docker作為Runtime
      2.3.3  K8s及Etcd的安裝
    2.4  生成證書
      2.4.1  Etcd證書
      2.4.2  K8s組件證書
    2.5  高可用配置
    2.6  Etcd集群配置
      2.6.1  創建Etcd的配置文件
      2.6.2  創建Service
    2.7  K8sMaster節點配置
      2.7.1  APIServer
      2.7.2  ControllerManager
      2.7.3  Scheduler
    2.8  TLSBootstrapping配置
    2.9  Node節點配置
      2.9.1  Kubelet配置
      2.9.2  kube-proxy配置
    2.10  安裝Calico
    2.11  安裝CoreDNS
    2.12  安裝MetricsServer
    2.13  安裝Dashboard
    2.14  小結
第2篇  基礎篇
  第3章  Docker基礎
    3.1  Docker介紹

    3.2  Docker安裝
    3.3  Docker基本命令
    3.4  Dockerfile的編寫
    3.5  鏡像大小優化
    3.6  多階段構建
    3.7  小結
  第4章  Kubernetes的基礎概念
    4.1  為什麼要用Kubernetes
      4.1.1  對於開發人員
      4.1.2  對於運維人員
    4.2  Kubernetes帶來的挑戰
    4.3  Kubernetes架構解析
    4.4  Master節點
    4.5  Node節點
    4.6  Pod的概念
      4.6.1  什麼是Pod
      4.6.2  Pod探針
      4.6.3  Pod鏡像拉取策略和重啟策略
      4.6.4  創建一個Pod
    4.7  小結
  第5章  Kubernetes調度基礎
    5.1  ReplicationController和ReplicaSet
      5.1.1  ReplicationController
      5.1.2  ReplicaSet
    5.2  無狀態應用管理Deployment
      5.2.1  創建Deployment
      5.2.2  更新Deployment
      5.2.3  回滾Deployment
      5.2.4  擴容Deployment
      5.2.5  暫停和恢復Deployment更新
      5.2.6  更新Deployment的注意事項
    5.3  有狀態應用管理StatefulSet
      5.3.1  StatefulSet的基本概念
      5.3.2  StatefulSet的注意事項
      5.3.3  定義一個StatefulSet資源文件
      5.3.4  創建StatefulSet
      5.3.5  StatefulSet創建Pod的流程
      5.3.6  StatefulSet擴容和縮容
      5.3.7  StatefulSet更新策略
      5.3.8  刪除StatefulSet
    5.4  守護進程集DaemonSet
      5.4.1  什麼是DaemonSet
      5.4.2  定義一個DaemonSet
      5.4.3  創建DaemonSet
      5.4.4  更新和回滾DaemonSet
    5.5  CronJob
      5.5.1  創建CronJob
      5.5.2  可用參數的配置
    5.6  小結
  第6章  Kubernetes服務發布基礎

    6.1  標籤和選擇器
      6.1.1  定義標籤
      6.1.2  選擇器
      6.1.3  修改標籤
      6.1.4  刪除標籤
    6.2  Service
      6.2.1  Service的基本概念
      6.2.2  定義Service
      6.2.3  無選擇器的Service和Endpoint
      6.2.4  ExternalNameService
      6.2.5  Service代理模式
      6.2.6  多埠Service
      6.2.7  Service的類型
      6.2.8  Kubernetes服務發現
    6.3  Ingress
      6.3.1  基本概念
      6.3.2  創建一個Ingress
      6.3.3  Ingress使用入門
      6.3.4  更新Ingress
    6.4  小結
  第7章  Kubernetes配置管理
    7.1  什麼是ConfigMap
    7.2  創建ConfigMap
      7.2.1  基於目錄創建ConfigMap
      7.2.2  基於文件創建ConfigMap
      7.2.3  基於ENV文件創建ConfigMap
      7.2.4  基於字元值創建ConfigMap
    7.3  ConfigMap實踐
      7.3.1  使用valueFrom定義容器環境變數
      7.3.2  使用envFrom定義容器的環境變數
      7.3.3  以文件形式掛載ConfigMap
      7.3.4  自定義文件名掛載ConfigMap
      7.3.5  指定掛載的文件許可權
    7.4  ConfigMap限制
    7.5  加密數據管理Secret
      7.5.1  創建Secret
      7.5.2  解碼Secret
    7.6  Secret實踐
      7.6.1  以文件形式掛載Secret
      7.6.2  自定義文件名掛載
      7.6.3  Secret作為環境變數
      7.6.4  Secret文件許可權
    7.7  常用的Secret類型
      7.7.1  Docker鏡像倉庫Secret
      7.7.2  HTTPS證書類型的Secret
    7.8  SubPath解決掛載覆蓋問題
    7.9  ConfigMap和Secret熱更新
    7.10  小結
第3篇  進階篇
  第8章  Kubernetes存儲入門

    8.1  Volume的概念
    8.2  Volume的類型
    8.3  示例1:通過emptyDir共享數據
    8.4  示例2:使用HostPath掛載宿主機文件
    8.5  示例3:掛載NFS至容器
    8.6  PersistentVolume
      8.6.1  PV回收策略
      8.6.2  PV訪問策略
      8.6.3  基於NFS的PV
      8.6.4  基於HostPath的PV
      8.6.5  基於CephRBD的PV
      8.6.6  PV的狀態
    8.7  PersistentVolumeClaim
      8.7.1  PVC的創建
      8.7.2  PVC的使用
    8.8  動態存儲StorageClass
      8.8.1  定義StorageClass
      8.8.2  整合StorageClass和CephRBD
    8.9  存儲的未來:CSI
      8.9.1  通過CSI連接CephFS
      8.9.2  通過CSI連接CephRBD
    8.10  小結
  第9章  Kubernetes高級調度
    9.1  初始化容器InitContainer
      9.1.1  InitContainer的基本概念
      9.1.2  示例1:等待依賴服務啟動
      9.1.3  示例2:服務註冊
      9.1.4  示例3:克隆Git代碼到容器中
      9.1.5  示例4:多個初始化容器使用
    9.2  臨時容器EphemeralContainers
      9.2.1  臨時容器的概念
      9.2.2  開啟臨時容器功能
      9.2.3  臨時容器的使用
    9.3  自動擴縮容HPA
      9.3.1  什麼是HPA
      9.3.2  HPA實踐——實現Web伺服器的自動伸縮特性
    9.4  Taint和Toleration
      9.4.1  容忍和污點的基本概念
      9.4.2  使用案例
      9.4.3  基於Taint的驅逐
    9.5  Affinity親和力
      9.5.1  Affinity的分類
      9.5.2  NodeAffinity
      9.5.3  PodAffinity和PodAntiAffinity
      9.5.4  示例1:同一個應用部署在不同的宿主機
      9.5.5  示例2:同一個應用不同副本的固定節點
      9.5.6  示例3:應用和緩存盡量部署在同一個域內
    9.6  小結
  第10章  Kubernetes資源管理
    10.1  ResourceQuota

      10.1.1  什麼是資源配額
      10.1.2  定義一個ResourceQuota
      10.1.3  ResourceQuota的使用
    10.2  LimitRange
      10.2.1  LimitRange的用途
      10.2.2  示例1:配置默認的requests和limits
      10.2.3  示例2:配置requests和limits的範圍
      10.2.4  示例3:限制申請存儲空間的大小
    10.3  QoS
      10.3.1  什麼是服務質量保證
      10.3.2  示例1:實現QoS為Guaranteed的Pod
      10.3.3  示例2:實現QoS為Burstable的Pod
      10.3.4  示例3:實現QoS為BestEffort的Pod
    10.4  小結
  第11章  Kubernetes安全入門
    11.1  許可權管理RBAC
      11.1.1  RBAC的基本概念
      11.1.2  Role和ClusterRole
      11.1.3  RoleBinding和ClusterRoleBinding
      11.1.4  對集群資源的許可權控制
      11.1.5  聚合ClusterRole
      11.1.6  Role常用示例
      11.1.7  RoleBinding常用示例
      11.1.8  命令行的使用
      11.1.9  K8s多租戶許可權管理實踐
    11.2  NetworkPolicy
      11.2.1  網路策略的使用
      11.2.2  網路策略的注意事項
      11.2.3  示例1:隔離中間件服務
      11.2.4  示例2:服務發布限制于Ingress
    11.3  小結
第4篇  高級篇
  第12章  雲原生存儲Rook
    12.1  Rook的安裝
    12.2  一鍵部署Ceph集群
    12.3  安裝Snapshot控制器
    12.4  安裝Ceph客戶端工具和Dashboard
    12.5  Ceph塊存儲的使用
      12.5.1  創建StorageClass和Ceph的存儲池
      12.5.2  掛載測試
      12.5.3  StatefulSetvolumeClaimTemplates
    12.6  共享型文件系統的使用
      12.6.1  創建共享型文件系統
      12.6.2  創建共享型文件系統的StorageClass
      12.6.3  掛載測試
    12.7  PVC擴容
      12.7.1  擴容文件共享型PVC
      12.7.2  擴容塊存儲
    12.8  PVC快照
      12.8.1  創建SnapshotClass

      12.8.2  創建快照
      12.8.3  使用快照恢複數據
      12.8.4  數據校驗
    12.9  PVC克隆
    12.10  測試數據清理
    12.11  小結
  第13章  中間件容器化
    13.1  傳統架構如何管理中間件集群
    13.2  Kubernetes如何管理中間件集群
      13.2.1  Operator和Helm的區別
      13.2.2  Kubernetes管理中間件集群的流程
    13.3  Operator的使用
      13.3.1  使用Operator安裝Redis集群
      13.3.2  Redis集群一鍵擴容
      13.3.3  集群清理
    13.4  Helm的使用
      13.4.1  安裝Helm客戶端
      13.4.2  Helm客戶端命令入門
      13.4.3  安裝Zookeeper集群至Kubernetes
      13.4.4  安裝Kafka集群至Kubernetes
      13.4.5  Kafka集群擴容
      13.4.6  刪除HelmRelease
    13.5  小結
第5篇  運維篇
  第14章  Kubernetes日誌收集
    14.1  有哪些日誌需要收集
    14.2  日誌採集工具有哪些
      14.2.1  ELK&EFK
      14.2.2  Filebeat
      14.2.3  新貴Loki
    14.3  使用EFK收集控制台日誌
      14.3.1  部署Elasticsearch+Fluentd+Kibana
      14.3.2  Kibana的使用
    14.4  使用Filebeat收集自定義文件日誌
      14.4.1  創建Kafka和Logstash
      14.4.2  注入FilebeatSidecar
      14.4.3  清理
    14.5  Loki初體驗
      14.5.1  安裝LokiStack
      14.5.2  Loki語法入門
    14.6  小結
  第15章  Kubernetes監控告警
    15.1  Prometheus的架構介紹
    15.2  Prometheus的安裝
    15.3  雲原生和非雲原生應用的監控流程
      15.3.1  監控數據來源
      15.3.2  什麼是ServiceMonitor
      15.3.3  ServiceMonitor找不到監控主機排查
      15.3.4  雲原生應用監控
      15.3.5  非雲原生監控Exporter

    15.4  黑盒監控
    15.5  Prometheus靜態配置
    15.6  Prometheus監控Windows(外部)主機
    15.7  Prometheus語法PromQL入門
      15.7.1  PromQL語法初體驗
      15.7.2  PromQL操作符
      15.7.3  PromQL常用函數
    15.8  Alertmanager告警入門
      15.8.1  Alertmanager配置文件解析
      15.8.2  Alertmanager路由規則
      15.8.3  Alertmanager郵件通知
      15.8.4  Alertmanager企業微信通知
      15.8.5  自定義告警模板
    15.9  Prometheus告警實戰
      15.9.1  PrometheusRule
      15.9.2  告警通用配置步驟
    15.10  小結
  第16章  服務發布Ingress進階
    16.1  安裝IngressNginxController
    16.2  IngressNginx入門
    16.3  IngressNginx域名重定向Redirect
    16.4  IngressNginx前後端分離Rewrite
    16.5  IngressNginx錯誤代碼重定向
    16.6  IngressNginxSSL
    16.7  IngressNginx匹配請求頭
    16.8  IngressNginx基本認證
    16.9  IngressNginx黑/白名單
      16.9.1  配置黑名單
      16.9.2  配置白名單
    16.10  IngressNginx速率限制
    16.11  使用Nginx實現灰度/金絲雀發布
      16.11.1  創建v1版本
      16.11.2  創建v2版本
      16.11.3  Canary版本切入部分流量
      16.11.4  測試灰度發布
    16.12  環境清理
    16.13  小結
第6篇  DevOps篇
  第17章  DevOps實踐
    17.1  CI/CD介紹
      17.1.1  持續集成(CI)
      17.1.2  持續交付(CD)
      17.1.3  持續部署(CD)
      17.1.4  CI和CD的區別
    17.2  Jenkins流水線介紹
      17.2.1  什麼是流水線
      17.2.2  聲明式流水線
      17.2.3  腳本化流水線
    17.3  聲明式流水線的語法
      17.3.1  sections

      17.3.2  directives
      17.3.3  parallel
    17.4  Jenkinsfile的使用
      17.4.1  Jenkinsfile初體驗
      17.4.2  Jenkinsfile進階
    17.5  DevOps平台建設
      17.5.1  安裝Jenkins
      17.5.2  安裝GitLab
      17.5.3  安裝Harbor
      17.5.4  Jenkins憑證Credentials
      17.5.5  配置Agent
      17.5.6  Jenkins配置Kubernetes多集群
    17.6  自動化構建Java應用
      17.6.1  創建Java測試用例
      17.6.2  定義Jenkinsfile
      17.6.3  Jenkinsfile詳解
      17.6.4  定義Dockerfile
      17.6.5  定義Kubernetes資源
      17.6.6  創建Jenkins任務
    17.7  自動化構建Vue/H5前端應用
      17.7.1  定義Jenkinsfile
      17.7.2  定義Dockerfile
      17.7.3  定義Kubernetes資源
      17.7.4  創建JenkinsJob
    17.8  自動化構建Golang項目
      17.8.1  定義Jenkinsfile
      17.8.2  定義Dockerfile
      17.8.3  創建JenkinsJob
    17.9  自動觸發構建
    17.10  UAT及生產環境流水線設計
    17.11  小結
第7篇  拓展篇
  第18章  服務網格
    18.1  服務網格概述
      18.1.1  服務網格的基本概念
      18.1.2  服務網格的功能
      18.1.3  服務網格產品
    18.2  Istio的基本概念
      18.2.1  Istio的架構
      18.2.2  Istio的組件
    18.3  Istio的核心資源
      18.3.1  VirtualService
      18.3.2  DestinationRule
      18.3.3  Gateway
    18.4  安裝Istio
      18.4.1  使用Operator部署Istio
      18.4.2  配置自動注入
      18.4.3  可視化工具Kiali
      18.4.4  Prometheus和Grafana
    18.5  Istio流量治理實踐

      18.5.1  部署測試用例
      18.5.2  Istio實現灰度部署
      18.5.3  Istio實現AB測試
      18.5.4  Istio注入延遲故障
      18.5.5  Istio注入中斷故障
      18.5.6  Istio快速超時配置
      18.5.7  Istio地址重寫和重定向
      18.5.8  Istio負載均衡演算法
      18.5.9  Istio熔斷
    18.6  小結

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032