欢迎来到 博文网 官方网站!
Kubernetes权威指南:从Docker到Kubernetes实践全接触+2

Kubernetes权威指南:从Docker到Kubernetes实践全接触+2

内容简介Kuberes 是由谷歌开源的

联系电话: 13983470003
产品详情

内容简介

Kuberes 是由谷歌开源的容器集群管理系统,为容器化应用提供了资源调度、部署运行、服务发现、扩缩容等一整能。Kuberes 也是将"一切以服务(Service)为中心,一切围绕服务运转”作为指导思想的创新型产品,它能和架构设计自始终地遵循了这一指导思想。构建在Kuberes 上的系统不仅可以独立运行在物理机、虚拟机集群或者企业私有云上,也可以被托管在公有云上。本计12 章,分别讲解Kuberes 的基本概念、实践指南、核心原理、开发指南、网络与存储、运维指南、新特等内容。全书图文并茂、内容丰富、由浅入深、讲解,并围绕在生产环境中可能出现的问题,给出了大量典型案例,比如配置方案、网络方案、共享存储方案、高可用方案及Trouble Shooting 技巧等,有很强的实战指导意义。本书的内容也随着Kuberes 的版本更新不断完善,目前涵盖了Kuberes 从1.0 到1.19 版本的主要特,努力为Kuberes 用户提供的Kuberes 技术指南。无论是对于软件工程师、软件架构师、测试工程师、运维工程师、技术经理,还是对于IT人士,本书都参考价值。

目录

第1章 Kuberes入门 11.1 了解Kuberes 21.2 为什么要用Kuberes 51.3 从一个简单的例子开始 71.3.1 环境准备 81.3.2 启动MySQL服务 81.3.3 启动Tomcat应用 111.3.4 通过浏览器访问网页 121.4 Kuberes的基本概念和术语 141.4.1 资源对象概述 141.4.2 集群类 151.4.3 应用类 191.4.4 存储类 401.4.5 类 44第2章 Kuberes安装配置指南 472.1 系统要求 482.2 使用kubeadm工具快速安装Kuberes集群 492.2.1 安装kubeadm 502.2.2 修改kubeadm的默认配置 502.2.3 下载Kuberes的相关镜像 512.2.4 运行kubeadm init命令安装Master节点 522.2.5 将新的Node加入集群 572.2.6 安装I网络插件 592.2.7 验证Kuberes集群是否工作正常 602.3 以制文件方式安装Kuberes高可用集群 612.3.1 Master高可用部署架构 612.3.2 创建CA根证书 622.3.3 部署的etcd高可用集群 632.3.4 部署的Kuberes Master高可用集群 682.3.5 部署Node的服务 852.3.6 kube-apiserver基于token的认证机制 892.4 使用私有镜像库的相关配置 902.5 Kuberes的版本升级 912.5.1 制文件升级 912.5.2 使用kubead行集群升级 922.6 CRI(容器运行时接口)详解 942.6.1 CRI概述 942.6.2 CRI的主要组件 942.6.3 Pod和容器的生命周期管理 952.6.4 面向容器级别的设计思路 962.6.5 尝新的Docker-CRI来创建容器 972.6.6 CRI展 982.7 kubectl命令行工具用法详解 982.7.1 kubectl用法概述 992.7.2 kubectl子命令详解 992.7.3 kubectl可操作的资源对象详解 1032.7.4 kubectl的公共参数说明 1052.7.5 kubectl格式化输出 1062.7.6 kubectl常用操作示例 108第3章 深入掌握Pod 1133.1 Pod定义详解 1143.2 Pod的基本用法 1203.3 静态Pod 1253.4 Pod容器共享Volume 1263.5 Pod的配置管理 1293.5.1 ConfigMap概述 1293.5.2 创建ConfigMap资源对象 1293.5.3 在Pod中使用ConfigMap 1373.5.4 使用ConfigMap的限制条件 1433.6 在容器内获取Pod信息(Downward API) 1443.6.1 环境变量方式 1443.6.2 Volume挂载方式 1483.6.3 Downward API支持设置的Pod和Container信息 1533.7 Pod生命周期和重启策略 1543.8 Pod健康检查和服务可用检查 1553.9 玩转Pod调度 1593.9.1 Deployment或RC:全自动调度 1623.9.2 NodeSelector:定向调度 1633.9.3 NodeAffinity:Node亲和调度 1653.9.4 PodAffinity:Pod亲和与互斥调度策略 1673.9.5 Taints和Tolerations(污点和容忍) 1713.9.6 Pod Priority Preemption:Pod优先级调度 1763.9.7 DaemonSet:在每个Node上都调度一个Pod 1783.9.8 Job:批处理调度 1813.9.9 Cronjob:定时任务 1853.9.10 自定义调度器 1883.9.11 Pod容灾调度 1903.10 Init Container(初始化容器) 1923.11 Pod的升级和回滚 1963.11.1 Deployment的升级 1963.11.2 Deployment的回滚 2033.11.3 暂停和恢复Deployment的部署操作 2053.11.4 其他管理对象的更新策略 2073.12 Pod的扩缩容 2093.12.1 手动扩缩容机制 2093.12.2 自动扩缩容机制 2113.13 使用StatefulSet搭建MongoDB集群 2333.13.1 前提条件 2343.13.2 部署StatefulSet 2343.13.3 查看MongoDB集群的状态 2383.13.4 StatefulSet的常见应用场景 241第4章 深入掌握Service 2454.1 Service定义详解 2464.2 Service的概念和原理 2484.2.1 Service的概念 2484.2.2 Service的负载均衡机制 2524.2.3 Service的多端口设置 2544.2.4 将外部服务定义为Service 2564.2.5 将Service暴露到集群外部 2574.2.6 Service支持的网络协议 2604.2.7 Kuberes的服务发现机制 2614.2.8 Headless Service的概念和应用 2634.2.9 端点分片与服务拓扑 2654.3 DNS服务搭建和配置指南 2744.3.1 修改每个Node上kubelet的DNS启动参数 2764.3.2 部署CoreDNS服务 2764.3.3 服务名的DNS解析 2804.3.4 CoreDNS的配置说明 2824.4 Node本地DNS缓存 2844.5 Pod的DNS域名相关特 2914.5.1 Pod的DNS域名 2914.5.2 为Pod自定义hostname和domain 2924.5.3 Pod的DNS策略 2944.5.4 Pod中的自定义DNS配置 2954.6 Ingress 7层路由机制 2974.6.1 一个完整的例子(Ingress Controller+Ingress策略+客户端访问) 2984.6.2 Ingress资源对象详解 3094.6.3 Ingress策略配置详解 3154.6.4 Ingress的TLS设置 319第5章 核心组件的运行机制 3265.1 Kuberes API Server原理解析 3275.1.1 Kuberes API Server概述 3275.1.2 API Server架构解析 3305.1.3 的Kuberes Proxy API接口 3355.1.4 集能模块之间的通信 3365.1.5 API Server网络隔离的设计 3385.2 Controller Manager原理解析 3395.2.1 副本调度控制器 3405.2.2 Node Controller 3425.2.3 ResourceQuota Controller 3435.2.4 Namespace Controller 3455.2.5 Service Controller与Endpoints Controller 3455.3 Scheduler原理解析 3465.3.1 Scheduler的调度流程 3475.3.2 Scheduler framework 3495.3.3 多调度器特 3515.4 kubelet运行机制解析 3525.4.1 节点管理 3525.4.2 Pod管理 3535.4.3 容器健康检查 3545.4.4 cAdvisor资源监控 3555.4.5 容器运行时 3575.5 kube-proxy运行机制解析 3595.5.1 代Proxy 3605.5.2 代Proxy 3615.5.2 第三代Proxy 362第6章 深入分析集群机制 3646.1 API Server认证管理 3656.1.1 S证书认证 3666.1.2 Bearer Token认证 3676.1.3 OpenID Connect Token第三方认证 3686.1.4 Authenticating Proxy(认证代理) 3726.2 API Server授权管理 3736.2.1 ABAC授权模式详解 3746.2.2 Webhook授权模式详解 3776.2.3 RBAC授权模式详解 3806.2.4 Node授权模式详解 4056.3 Admission Control 4066.4 Service Account 4106.5 Secret私密凭据 4156.6 Pod策略 4196.6.1 PodSecurityPolicy的工作机制 4196.6.2 PodSecurityPolicy配置详解 4216.6.3 PodSecurityPolicy策略示例 4276.6.4 PodSecurityPolicy的RBAC授权 4316.6.5 Pod设置(Security Context)详解 436第7章 网络原理 4457.1 Kuberes网络模型 4467.2 Docker网络基础 4487.2.1 网络命名空间 4487.2.2 Veth设备对 4517.2.3 网桥 4547.2.4 iptables和Netfilter 4567.2.5 路由 4597.3 Docker的网络实现 4617.3.1 查看Docker启动后的系统情况 4637.3.2 查看容器启动后的网络配置(容器无端) 4657.3.3 查看容器启动后的网络配置(容器有端) 4687.3.4 Docker的网络局限 4697.4 Kuberes的网络实现 4707.4.1 容器到容器的通信 4707.4.2 Pod之间的通信 4717.5 Pod和Service网络实战 4747.5.1 部署一个RC/Pod 4767.5.2 发布一个服务 4817.6 I网络模型 4897.6.1 M网络模型简介 4897.6.2 I网络模型详解 4907.6.3 在Kuberes中使用网络插件 5077.7 开源容器网络方案 5087.7.1 Flannel插件的原理和部署示例 5087.7.2 Open vSwitch插件的原理和部署示例 5137.7.3 直接路由的原理和部署示例 5187.7.4 Calico插件的原理和部署示例 5217.8 Kuberes的网络策略 5417.8.1 网络策略设置说明 5427.8.2 Selecto能说明 5447.8.3 为命名空间配置默认的网络策略 5457.8.4 网络策略应用示例 5477.8.5 NetworkPolicy的发展 5507.9 Kuberes对IPv4和IPv6双栈的支持 5517.9.1 为Kuberes集群启用IPv4和IPv6双栈 5517.9.2 Pod双栈IP地址验证 5547.9.3 Service双栈IP地址验证 557第8章 存储原理和应用 5608.1 Kuberes存储机制概述 5618.1.1 将资源对象映射为存储卷 5628.1.2 Node本地存储卷 5698.2 持久卷(Persistent Volume)详解 5738.2.1 PV和PVC的工作原理 5748.2.2 PV详解 5818.2.3 PVC详解 5878.2.4 Pod使用PVC 5898.2.5 StorageClass详解 5938.3 动态存储管理实战:GlusterFS 6008.3.1 准备工作 6008.3.2 创建GlusterFS管理服务容器集群 6008.3.3 创建Heketi服务 6038.3.4 通过Heketi管理GlusterFS集群 6078.3.5 定义StorageClass 6108.3.6 定义PVC 6108.3.7 Pod使用PVC的存储资源 6138.4 CSI存储机制详解 6148.4.1 CSI的设计背景 6148.4.2 CSI的核心组件和部署架构 6158.4.3 CSI存储插件应用实战 6178.4.4 CSI存储快照管理 6328.4.5 CSI的发展 638第9章 Kuberes开发指南 6479.1 REST简述 6489.2 Kuberes API详解 6509.2.1 Kuberes API概述 6509.2.2 Kuberes API版本的策略 6589.2.3 API Groups(API组) 6589.2.4 API REST的方法说明 6619.2.5 API Server响应说明 6639.3 使用Fabric8访问Kuberes API 6659.3.1 具体应用示例 6669.3.2 其他客户端库 6799.4 Kuberes API的扩展 6809.4.1 使用CRD扩展API资源 6819.4.2 使用API聚合机制扩展API资源 692第10章 Kuberes运维管理 70210.1 Node管理 70310.1.1 Node的隔离与恢复 70310.1.2 Node的扩容 70410.2 更新资源对象的Label 70510.3 Namespace:集群环境共享与隔离 70610.3.1 创建Namespace 70610.3.2 定义Context 70710.3.3 设置工作组在特定Context中工作 70810.4 Kuberes资源管理 71010.4.1 计算资源管理 71210.4.2 资源配置范围管理(LimitRange) 72210.4.3 资源服务质量管理(Resource QoS) 73010.4.4 资源配额管理(Resource Quotas) 73810.4.5 ResourceQuota和LimitRange实践 74410.4.6 Pod中多个容器共程命名空间 75410.4.7 PID资源管理 75710.4.8 节点的CPU管理策略 75710.4.9 拓扑管理器 76110.5 资源紧缺时的Pod驱逐机制 76610.5.1 驱逐时机 76610.5.2 驱逐阈值 76710.5.3 节点状态 76810.5.4 节点状态的振荡 76910.5.5 回收Node级别的资源 76910.5.6 驱逐用户的Pod 77010.5.7 资源少回收量 77110.5.8 节点资源紧缺情况下的系统行为 77210.5.9 可调度的资源和驱逐策略实践 77310.5.10 现阶段的问题 77310.6 Pod Disruption Budget(主动驱逐保护) 77410.7 Kuberes集群监控 77810.7.1 使用Metrics Server监控Node和Pod的CPU和内存使用数据 77810.7.2 Prometheus+Grafana集群能监台搭建 78310.8 Kuberes集群日志管理 80310.8.1 容器应用和系统组件输出日志的各种场景 80310.8.2 Fluentd+Elasticsearch+Kibana日志系统部署 80710.8.3 部署日志采集sidecar工具采集容器日志 82110.9 Kuberes的审计机制 82210.10 使用Web UI(Daoard)管理集群 82610.11 Helm:Kuberes应管理工具 83910.11.1 Helm的整体架构 84010.11.2 Helm版本说明 84010.11.3 Helm的安装 84210.11.4 Helm的使用 84310.11.5 Chart说明 85710.11.6 搭建私有Chart仓库 858第11章 Trouble Shooting指南 86211.1 查看系统Event 86311.2 查看容器日志 86511.3 查看Kuberes服务日志 86611.4 常见问题 86811.4.1 由于无法下载pause镜像导致Pod一直处于Pending状态 86811.4.2 Pod创建,但RESTARTS数量持续增加 87011.4.3 通过服务名无法访问服务 87111.5 寻求帮助 872第12章 Kuberes开发能 87512.1 对Windows容器的支持 87612.1.1 在Windows Server上安装Docker 87612.1.2 在Windows Server上部署Kuberes Node组件 87712.1.3 在Windows Server上部署容器应用和服务 88612.1.4 Kuberes支持的Windows容器特、限制和发展趋势 89212.2 对GPU的支持 89612.2.1 环境准备 89712.2.2 在容器中使用GPU资源 90012.2.3 发展趋势 90212.3 Pod的垂直扩缩容 90212.3.1 VPA详解 90312.3.2 安装Vertical Pod Autoscaler 90612.3.3 为Pod设置垂直扩缩容 90612.3.4 注意事项 90712.4 Kuberes生态系统与路线 90812.4.1 Kuberes与CF 90812.4.2 Kuberes的路线 91012.4.3 Kuberes的开发模式 914附录A Kuberes核心服务配置详解 915

在线客服
微信联系
客服
扫码加微信(手机同号)
电话咨询
返回顶部