欢迎光临澳大利亚新华书店网 [登录 | 免费注册]

    • 云原生Kubernetes全栈架构师实战
      • 作者:杜宽|责编:王金柱
      • 出版社:清华大学
      • ISBN:9787302603887
      • 出版日期:2022/05/01
      • 页数:492
    • 售价:55.2
  • 内容大纲

        本书以一个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  小结