-
内容大纲
本书以一名大型企业集群运维工程师的实战经验为基础,全面系统地阐述Kubernetes(K8s)在自动化运维领域的技术应用。本书共16章,内容由浅入深,逐步揭示K8s的原理及实际操作技巧。第1章引领读者踏入Kubernetes的世界,详细介绍其起源、核心组件的概念以及集群安装方法。第2~4章深入剖析Pod控制器、Label标签、容器钩子、探针、Service服务发现与负载均衡机制。第5~7章则探讨Ingress-Nginx服务网关的应用、存储卷管理、配置和密钥管理的高级功能。第8~10章聚焦于鉴权机制、容器运行时的选择与配置,以及GitLab企业级代码仓库的部署和管理。第11~13章涵盖Jenkins持续集成交付工具、ArgoCD声明式持续交付,以及云原生负载均衡MetalLB的应用。第14章和第15章分别介绍云原生日志与监控集成架构,以及Istio微服务时代的服务网格领航者。最后,第16章通过一系列实战案例,展示在K8s环境中安装并实验多种服务的详细过程。
本书不仅整合了多种自动化运维工具,还提供了丰富的运维案例,无论是初学者还是有一定经验的运维工程师,都能从中获得宝贵的知识和实践经验,提升自身的技术水平。 -
作者介绍
高鹏举 现任国家电网公司高级运维开发工程师。在Linux相关技术领域拥有深厚的造诣,尤其在容器化、虚拟化、自动化运维、系统监控、脚本编写以及服务网格等方面具备丰富的实践经验和深入的研究。凭借其扎实的技术功底与广泛的项目经历,成功主导并实施了多个国有企业的关键项目。 此外,他还活跃于各大技术社区,累计发表了超过2000篇关于运维开发的高质量教程文章,广受读者赞誉。 -
目录
第1章 走进Kubernetes的世界
1.1 为什么使用Kubernetes
1.2 Kubernetes节点组件
1.2.1 Master节点运行的组件
1.2.2 Node节点运行的组件
1.3 Kubernetes集群的搭建与配置
1.3.1 Kubeadm工具介绍
1.3.2 基础环境配置
1.3.3 升级内核版本
1.3.4 三大组件的安装
1.3.5 集群镜像处理
1.3.6 集群初始化
1.3.7 Node节点加入集群
1.3.8 Calico网络插件安装
1.3.9 Metrics-Server服务的安装
1.3.10 Kuboard管理平台安装
1.4 本章小结
第2章 Pod控制器
2.1 Pod、Kubectl与YAML
2.1.1 Pod及其操作
2.1.2 Kubectl命令行工具
2.1.3 YAML文件
2.2 Replication
2.3 ReplicaSet
2.4 Deploymant
2.4.1 Deployment概述
2.4.2 Deployment创建与访问
2.4.3 滚动更新策略实例
2.4.4 更新/回滚/暂停/恢复
2.4.5 扩容的3种方式
2.5 StatefulSet
2.5.1 StatefulSet概述
2.5.2 StatefulSet创建服务
2.5.3 Ping域名实验
2.5.4 解析域名实验
2.5.5 创建StatefulSet服务自动申请PV实验
2.6 DaemonSet
2.6.1 DaemonSet概述
2.6.2 DaemonSet实例
2.7 CronJob
2.7.1 CronJob概述
2.7.2 CronJob资源清单详解
2.7.3 CronJob实验
2.7.4 CronJob实战备份MySQL数据库
2.8 Job
2.8.1 Job概述
2.8.2 Job实验
2.9 本章小结
第3章 Label、容器钩子、探针
3.1 Label标签
3.1.1 Label概述
3.1.2 Label实验
3.2 InitC
3.2.1 InitC概述
3.2.2 InitC实验
3.2.3 部署Elasticsearch服务时配置InitC
3.3 容器钩子
3.3.1 容器钩子概述
3.3.2 容器钩子实验
3.4 探针
3.4.1 探针概述
3.4.2 StartUpProbe启动探针实验
3.4.3 ReadinessProbe就绪探针实验
3.4.4 LivenessProbe存活探针实验
3.5 本章小结
第4章 Service服务发现与负载均衡
4.1 Service原理
4.2 ClusterIP
4.2.1 ClusterIP概述
4.2.2 ClusterIP实验
4.3 NodePort
4.3.1 NodePort概述
4.3.2 NodePort实验
4.4 HeadlessService
4.4.1 HeadlessService概述
4.4.2 HeadlessService实验
4.5 ExternalName
4.5.1 ExternalName概述
4.5.2 ExternalName实验
4.6 LoadBalancer
4.6.1 LoadBalancer概述
4.6.2 如何指定LoadBalancer类型的服务IP
4.7 Service端口范围及解除限制
4.7.1 Service端口范围概述
4.7.2 Service端口范围解除限制
4.8 使用Service代理K8s外部应用
4.8.1 使用Service代理K8s外部应用概述
4.8.2 使用Service代理K8s外部应用实验
4.9 本章小结
第5章 Ingress-Nginx服务网关
5.1 Ingress-Nginx概述
5.2 Ingress-Nginx安装
5.3 Annotations注解
5.3.1 流量复制
5.3.2 IP白名单
5.3.3 IP黑名单
5.3.4 域名转发
5.3.5 返回字符串
5.3.6 文件上传大小
5.3.7 域名HTTPS访问
5.3.8 对接外部的认证服务
5.3.9 配置默认页面
5.3.10 Nginx如何获取客户端真实IP
5.3.11 重定向
5.3.12 重写
5.3.13 多域名指向同一个后端服务
5.4 本章小结
第6章 Kubernetes存储与持久化
6.1 Kubernetes存储类概述
6.2 Kubernetes持久卷声明
6.3 持久卷的生命周期
6.4 动态申请持久卷实验
6.4.1 NFS共享存储搭建
6.4.2 nfs-client-provisioner存储类搭建
6.4.3 服务使用存储类动态申请资源实验
6.5 PV/PVC详解
6.5.1 PV/PVC概述
6.5.2 PVC的创建流程
6.5.3 PV访问模式
6.5.4 PV回收策略
6.5.5 PV/PVC卷状态
6.6 Deployment直连NFS存储
6.7 本章小结
第7章 ConfigMap配置和Secret密钥管理
7.1 ConfigMap:非敏感配置信息的集中管理
7.1.1 ConfigMap概述
7.1.2 使用目录方式创建ConfigMap
7.1.3 使用文件方式创建ConfigMap
7.1.4 使用字面值方式创建ConfigMap
7.1.5 设置ConfigMap不允许更改
7.1.6 通过envfrom方式指定ConfigMap
7.1.7 通过valueFrom方式指定ConfigMap
7.1.8 Nginx通过ConfigMap管理配置文件
7.2 Secret:敏感信息的安全存储与访问
7.2.1 Secret概述
7.2.2 使用文件方式创建Secret
7.2.3 使用YAML方式创建Secret
7.2.4 Secret权限解析
7.2.5 使用Docker的config.json方式创建Secret
7.2.6 使用Kubectl创建DockerRegistry认证的Secret
7.3 本章小结
第8章 Kubernetes鉴权机制
8.1 Kubernetes鉴权机制概述
8.2 鉴权机制的工作流程
8.3 角色/角色绑定概述
8.4 用户鉴权实战
8.5 本章小结
第9章 容器运行时Containerd
9.1 Containerd概述
9.2 安装与配置Containerd
9.2.1 安装Containerd
9.2.2 配置Containerd阿里云镜像加速器
9.2.3 配置Containerd使用自建镜像仓库
9.3 使用nerdctl管理Containerd
9.3.1 安装nerdctl
9.3.2 nerdctl常用命令示例
9.4 使用nerdctl构建镜像
9.4.1 安装BuildKit和cni-plugins
9.4.2 构建镜像
9.5 本章小结
第10章 GitLab企业级代码仓库
10.1 GitLab目录结构
10.2 部署GitLab
10.3 GitLab的配置与使用
10.3.1 基础设置
10.3.2 创建项目
10.3.3 修改克隆地址
10.3.4 拉取/提交代码
10.4 本章小结
第11章 Jenkins持续集成交付工具
11.1 Jenkins概述
11.2 Kubernetes集群部署Jenkins
11.3 Jenkins对接K8s实现动态Slave
11.3.1 基础设置并对接K8s
11.3.2 自由风格项目实现动态Slave
11.3.3 Pipeline流水线项目实现动态Slave
11.4 本章小结
第12章 ArgoCD声明式持续交付
12.1 ArgoCD概述
12.2 Kubernetes部署ArgoCD
12.3 ArgoCD的配置及使用
12.3.1 ArgoCD连接Kubernetes
12.3.2 使用ArgoCDCLI集成GitLab并创建App
12.4 本章小结
第13章 云原生负载均衡之MetalLB
13.1 自建LoadBalancer种类
13.2 MetalLB的核心概念与架构
13.2.1 MetalLB的核心概念
13.2.2 MetalLB架构
13.3 Kubernetes部署MetalLB
13.3.1 检查是否开启IPVS功能
13.3.2 配置并创建MetaLB服务
13.3.3 创建LoadBalancer类型的服务
13.3.4 使用MetalLB进行服务的外部访问
13.4 本章小结
第14章 Helm与Loki-Stack搭建日志监控系统
14.1 Helm包管理与部署
14.1.1 Helm概述
14.1.2 CentOS7系统安装Helm
14.2 Loki-Stack部署与实践
14.2.1 Loki与Loki-Stack概述
14.2.2 Helm3部署Loki-Stack
14.2.3 外部访问Grafana
14.2.4 日志监控查询
14.2.5 导入仪表盘面板
14.2.6 监控告警
14.3 本章小结
第15章 Istio微服务时代的服务网格领航者
15.1 Istio概述
15.2 Istio核心组件
15.2.1 Istio-Pilot
15.2.2 Istio-Telemetry
15.2.3 Istio-Policy
15.2.4 Istio-Citadel
15.2.5 Istio-Sidecar-Injector
15.2.6 Istio-Proxy
15.2.7 Istio-Ingress-Gateway
15.2.8 Istio-Envoy
15.3 部署Istio
15.3.1 Istioctl的安装
15.3.2 Istioctl安装Istio
15.4 Sidecar边车容器注入
15.4.1 Sidecar手动注入
15.4.2 Sidecar自动注入
15.4.3 Sidecar取消自动注入
15.54 种配置资源概念详解
15.5.1 VirtualService
15.5.2 DestinationRule
15.5.3 ServiceEntry
15.5.4 Gateway
15.6 VirtualService关键字配置示例
15.6.1 使用weight关键字拆分流量
15.6.2 使用timeout关键字设置请求超时时间
15.6.3 使用retries关键字设置重试
15.6.4 使用fault关键字设置故障注入
15.6.5 VirtualService资源清单详解
15.7 Istio流量治理
15.7.1 请求头httpHeaderName
15.7.2 HTTP流量镜像
15.7.3 重写
15.7.4 重定向
15.7.5 流量权重-蓝绿与金丝雀发布
15.7.6 超时
15.7.7 重试
15.7.8 断路器/熔断
15.7.9 故障注入
15.8 本章小结
第16章 Kubernetes服务部署实战
16.1 K8s部署MinIO开源对象存储
16.2 K8s部署Metabase数据库连接工具
16.3 K8s部署phpMyAdmin数据库连接工具
16.4 K8s部署Nacos配置中心
16.5 本章小结
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-

孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-

时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-

本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...
[
