自我提升
类型
可以朗读
语音朗读
196千字
字数
2024-07-01
发行日期
展开全部
主编推荐语
一本实用性很强的Kubernetes运维实战指南。
内容简介
本书旨在为容器云平台的建设、应用和运维过程提供全面的指导。作者结合丰富的生产环境经验,深入探讨作为一名Kubernetes工程师的核心技能,包括部署、存储、网络、安全、日志、监控、CI/CD等方面的技术。
本书结合大量的实际案例,深入解析各个知识点,帮助读者更轻松地理解Kubernetes,并掌握在真实应用场景中的使用方法、技巧以及工作原理。通过学习本书,读者可以熟练运用这些知识来构建高效、稳定、安全的企业级Kubernetes容器平台,提高自身的运维能力和竞争力。
目录
- 版权信息
- 作者简介
- 内容简介
- 前言
- 第1章 Kubernetes概述
- 1.1 容器技术概述
- 1.2 Kubernetes介绍
- 1.3 Kubernetes架构与组件
- 1.4 Kubernetes核心资源
- 1.5 本章小结
- 第2章 Kubernetes快速入门
- 2.1 Kubernetes集群部署
- 2.1.1 准备服务器环境
- 2.1.2 系统初始化配置
- 2.1.3 安装Docker
- 2.1.4 安装cri-docker
- 2.1.5 安装kubeadm和kubelet
- 2.1.6 部署Master节点
- 2.1.7 部署Node节点
- 2.1.8 部署网络插件
- 2.1.9 部署Dashboard
- 2.1.10 清空Kubernetes环境
- 2.2 部署第一个应用程序
- 2.2.1 通过Dashboard部署应用程序
- 2.2.2 通过kubectl命令行部署应用程序
- 2.2.3 通过定义资源文件部署应用程序
- 2.3 kubectl管理工具
- 2.3.1 kubectl子命令概要
- 2.3.2 kubectl工具常用操作
- 2.4 本章小结
- 第3章 Pod资源对象
- 3.1 Pod存在的意义
- 3.2 Pod实现原理
- 3.2.1 容器之间网络通信
- 3.2.2 容器之间文件共享
- 3.3 Pod资源常见字段及值类型
- 3.4 Pod管理常用命令
- 3.5 容器运行命令与参数
- 3.5.1 command
- 3.5.2 args
- 3.6 镜像拉取策略
- 3.7 声明端口
- 3.8 容器健康检查
- 3.8.1 存活探针
- 3.8.2 就绪探针
- 3.8.3 启动探针
- 3.8.4 tcpSocket和exec检查方法
- 3.9 容器资源配额
- 3.9.1 资源请求与资源限制
- 3.9.2 资源请求对Pod调度的影响
- 3.9.3 理想的资源配额是多少
- 3.9.4 服务质量
- 3.10 容器环境变量
- 3.11 初始化容器
- 3.12 容器生命周期回调
- 3.12.1 postStart
- 3.12.2 preStop
- 3.13 Pod生命周期
- 3.13.1 创建Pod
- 3.13.2 启动Pod
- 3.13.3 销毁Pod
- 3.14 本章小结
- 第4章 工作负载资源对象
- 4.1 工作负载资源概述
- 4.2 Deployment
- 4.2.1 获取源代码
- 4.2.2 构建镜像
- 4.2.3 推送镜像到镜像仓库
- 4.2.4 部署应用
- 4.2.5 应用升级
- 4.2.6 应用回滚
- 4.2.7 应用扩容与缩容
- 4.2.8 应用下线
- 4.2.9 实现灰度发布
- 4.3 DaemonSet
- 4.4 Job与CronJob
- 4.4.1 Job
- 4.4.2 ConJob
- 4.5 本章小结
- 第5章 Service资源对象
- 5.1 Service概述
- 5.2 Service定义
- 5.3 Service公开类型
- 5.3.1 ClusterIP
- 5.3.2 NodePort
- 5.3.3 LoadBalancer
- 5.3.4 ExternalName
- 5.4 Endpoints对象
- 5.5 Service服务发现
- 5.5.1 环境变量
- 5.5.2 DNS
- 5.6 Service代理模式
- 5.6.1 iptables
- 5.6.2 ipvs
- 5.7 生产环境架构
- 5.8 本章小结
- 第6章 Ingress资源对象
- 6.1 Ingress概述
- 6.2 Ingress控制器部署
- 6.3 Ingress对外公开HTTP服务
- 6.4 基于请求路径转发不同服务
- 6.5 Ingress配置HTTPS
- 6.6 Ingress自定义配置
- 6.6.1 增加代理超时时间
- 6.6.2 设置客户端请求体大小
- 6.6.3 重定向
- 6.6.4 会话保持
- 6.6.5 自定义规则
- 6.7 Ingress灰度发布
- 6.7.1 基于权重的流量切分
- 6.7.2 基于客户端请求的流量切分
- 6.7.3 常见发布策略总结
- 6.8 Ingress工作原理
- 6.9 生产环境架构
- 6.10 本章小结
- 第7章 Kubernetes存储管理
- 7.1 卷
- 7.1.1 emptyDir
- 7.1.2 hostPath
- 7.1.3 nfs
- 7.1.4 容器存储接口
- 7.2 持久卷
- 7.2.1 创建PV
- 7.2.2 创建PVC
- 7.2.3 Pod使用PVC
- 7.2.4 PV动态供给
- 7.2.5 PV生命周期
- 7.3 内置存储对象
- 7.3.1 ConfigMap
- 7.3.2 Secret
- 7.3.3 配置文件自动重新加载方案
- 7.4 本章小结
- 第8章 有状态应用管理
- 8.1 StatefulSet工作负载资源
- 8.1.1 稳定的网络标识符
- 8.1.2 稳定的独享存储
- 8.2 MySQL主从复制集群实践
- 8.2.1 MySQL集群拓扑规划
- 8.2.2 MySQL集群容器化实现
- 8.2.3 MySQL Slave扩展与缩减
- 8.2.4 MySQL版本升级与回滚
- 8.3 Operator
- 8.3.1 Operator介绍
- 8.3.2 自定义资源定义
- 8.3.3 控制器
- 8.3.4 MySQL Operator
- 8.4 本章小结
- 第9章 Kubernetes调度管理
- 9.1 节点选择器
- 9.2 节点亲和性
- 9.3 Pod亲和性和反亲和性
- 9.3.1 亲和性
- 9.3.2 反亲和性
- 9.4 污点与容忍
- 9.4.1 污点
- 9.4.2 容忍
- 9.5 nodeName
- 9.6 本章小结
- 第10章 Kubernetes安全配置
- 10.1 Kubernetes API访问控制
- 10.1.1 Kubernetes安全框架
- 10.1.2 RBAC介绍
- 10.1.3 面向用户授权案例1
- 10.1.4 面向用户授权案例2
- 10.1.5 内置集群角色
- 10.1.6 面向应用程序授权案例
- 10.2 Pod安全上下文
- 10.2.1 容器以普通用户运行
- 10.2.2 容器启用特权
- 10.2.3 容器设置只读文件系统
- 10.3 网络策略
- 10.3.1 网络策略实现
- 10.3.2 网络策略资源
- 10.3.3 默认策略
- 10.3.4 Pod级别限制
- 10.3.5 命名空间级别限制
- 10.3.6 细粒度限制
- 10.3.7 IP段限制
- 10.3.8 出站流量限制
- 10.4 本章小结
- 第11章 Kubernetes网络插件之Calico
- 11.1 Docker网络模型
- 11.1.1 容器之间以及容器与宿主机之间的通信
- 11.1.2 容器访问外部网络
- 11.1.3 外部网络访问容器
- 11.2 Kubernetes网络模型
- 11.3 Calico介绍
- 11.4 Calico部署
- 11.5 calicoctl管理工具
- 11.6 Calico工作模式
- 11.6.1 覆盖网络:VXLAN模式
- 11.6.2 覆盖网络:IPIP模式
- 11.6.3 路由网络:BGP模式
- 11.6.4 工作模式优缺点
- 11.7 路由反射器
- 11.8 本章小结
- 第12章 Kubernetes部署利器Helm
- 12.1 Helm介绍
- 12.2 Helm安装
- 12.3 Helm命令概述
- 12.4 Helm基本使用
- 12.4.1 制作Chart
- 12.4.2 安装Chart
- 12.4.3 更新Release
- 12.4.4 回滚Release
- 12.4.5 卸载Release
- 12.5 深入理解Chart模板
- 12.5.1 缩进函数
- 12.5.2 toYaml函数
- 12.5.3 条件判断
- 12.5.4 循环
- 12.5.5 变量作用域
- 12.5.6 读取文件
- 12.5.7 自定义模板
- 12.6 自建Chart仓库
- 12.6.1 搭建Chart仓库服务器
- 12.6.2 推送本地Chart到远程仓库
- 12.6.3 通过远程仓库安装Chart
- 12.7 公共Chart仓库
- 12.7.1 部署MySQL集群
- 12.7.2 部署Redis集群
- 12.8 本章小结
- 第13章 基于Jenkins的CI/CD平台
- 13.1 CI/CD简介
- 13.1.1 持续集成
- 13.1.2 持续交付和持续部署
- 13.2 CI/CD流程设计
- 13.3 相关软件环境准备
- 13.3.1 部署GitLab代码仓库
- 13.3.2 部署Harbor镜像仓库
- 13.3.3 部署Jenkins发布系统
- 13.4 Jenkins初体验
- 13.4.1 流程设计
- 13.4.2 提交代码
- 13.4.3 创建项目
- 13.4.4 项目配置
- 13.4.5 验证与测试
- 13.5 Jenkins参数化构建
- 13.6 Jenkins主从架构
- 13.7 Jenkins Pipeline
- 13.7.1 Pipeline语法
- 13.7.2 基于Kubernetes动态创建代理
- 13.7.3 常用指令
- 13.7.4 片段生成器
- 13.8 案例:Pipeline实现网站项目的自动发布
- 13.8.1 Pipeline脚本基本结构
- 13.8.2 拉取代码阶段
- 13.8.3 代码编译阶段
- 13.8.4 构建镜像阶段
- 13.8.5 部署到K8s集群阶段
- 13.8.6 反馈阶段
- 13.8.7 验证与测试
- 13.9 Argo CD增强持续交付
- 13.9.1 Argo CD部署
- 13.9.2 Argo CD实践
- 13.10 本章小结
- 第14章 基于Prometheus+Grafana的监控平台
- 14.1 Prometheus和Grafana简介
- 14.2 Prometheus架构
- 14.3 部署Prometheus和Grafana
- 14.3.1 部署Prometheus
- 14.3.2 部署Grafana
- 14.3.3 在Grafana中添加Prometheus作为数据源
- 14.4 Prometheus监控案例
- 14.4.1 监控Linux服务器
- 14.4.2 监控Docker服务器
- 14.4.3 监控MySQL服务器
- 14.4.4 监控应用程序
- 14.5 Alertmanager告警通知
- 14.5.1 部署Alertmanager
- 14.5.2 Prometheus指向Alertmanager
- 14.5.3 定义告警规则
- 14.5.4 企业微信告警通知
- 14.5.5 自定义告警内容模板
- 14.6 Prometheus监控Kubernetes
- 14.6.1 Prometheus服务发现简介
- 14.6.2 Kubernetes关注的指标
- 14.6.3 在Kubernetes中搭建Prometheus监控系统
- 14.6.4 监控Node
- 14.6.5 监控Pod
- 14.6.6 监控资源对象
- 14.6.7 监控Service和Ingress对象
- 14.6.8 监控集群中应用程序
- 14.6.9 监控Kubernetes组件
- 14.7 本章小结
- 第15章 基于ELK Stack的日志管理平台
- 15.1 ELK Stack简介
- 15.2 部署Elasticsearch和Kibana
- 15.3 Nginx日志收集案例
- 15.3.1 部署Filebeat
- 15.3.2 Kibana查看索引
- 15.3.3 创建数据视图
- 15.4 数据处理管道Logstash
- 15.4.1 部署Logstash
- 15.4.2 定义数据处理规则
- 15.4.3 配置Filebeat发送到Logstash
- 15.5 Kibana仪表板
- 15.5.1 PV统计
- 15.5.2 PV趋势图
- 15.5.3 客户端IP TOP10
- 15.5.4 URI TOP10
- 15.5.5 HTTP状态码分布
- 15.6 收集Kubernetes集群中的应用日志
- 15.6.1 如何收集这些日志
- 15.6.2 在Kubernetes中搭建ELK日志系统
- 15.6.3 收集Pod日志
- 15.6.4 收集Pod中的日志文件
- 15.7 本章小结
展开全部
出版方
清华大学出版社
清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。