新书速览|云原生Kubernetes自动化运维实践

news/2025/3/25 22:28:06/

云原生Kubernetes自动化运维实践》

本书内容:

云原生Kubernetes自动化运维实践》以一名大型企业集群运维工程师的实战经验为基础,全面系统地阐述Kubernetes(K8s)在自动化运维领域的技术应用。《云原生Kubernetes自动化运维实践》共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篇关于运维开发的高质量教程文章,广受读者赞誉。

本书读者:

云原生Kubernetes自动化运维实践》不仅整合了多种自动化运维工具,还提供了丰富的运维案例,无论是初学者还是有一定经验的运维工程师,都能从中获得宝贵的知识和实践经验,提升自身的技术水平。

本书目录:

第 1 章  走进Kubernetes的世界1

1.1  为什么使用Kubernetes1

1.2  Kubernetes节点组件2

1.2.1  Master节点运行的组件2

1.2.2  Node节点运行的组件2

1.3  Kubernetes集群的搭建与配置3

1.3.1  Kubeadm工具介绍3

1.3.2  基础环境配置4

1.3.3  升级内核版本10

1.3.4  三大组件的安装12

1.3.5  集群镜像处理13

1.3.6  集群初始化14

1.3.7  Node节点加入集群14

1.3.8  Calico网络插件安装16

1.3.9  Metrics-Server服务的安装17

1.3.10  Kuboard管理平台安装20

1.4  本章小结22

第 2 章  Pod控制器23

2.1  Pod、Kubectl与YAML23

2.1.1  Pod及其操作24

2.1.2  Kubectl命令行工具25

2.1.3  YAML文件27

2.2  Replication28

2.3  ReplicaSet31

2.4  Deploymant36

2.4.1  Deployment概述36

2.4.2  Deployment创建与访问36

2.4.3  滚动更新策略实例38

2.4.4  更新/回滚/暂停/恢复41

2.4.5  扩容的3种方式45

2.5  StatefulSet46

2.5.1  StatefulSet概述46

2.5.2  StatefulSet创建服务47

2.5.3  Ping域名实验49

2.5.4  解析域名实验50

2.5.5  创建StatefulSet服务自动申请PV实验51

2.6  DaemonSet55

2.6.1  DaemonSet概述55

2.6.2  DaemonSet实例56

2.7  CronJob57

2.7.1  CronJob概述57

2.7.2  CronJob资源清单详解58

2.7.3  CronJob实验59

2.7.4  CronJob实战备份MySQL数据库61

2.8  Job64

2.8.1  Job概述64

2.8.2  Job实验64

2.9  本章小结66

第 3 章  Label、容器钩子、探针67

3.1  Label标签67

3.1.1  Label概述67

3.1.2  Label实验68

3.2  InitC70

3.2.1  InitC概述71

3.2.2  InitC实验71

3.2.3  部署Elasticsearch服务时配置InitC73

3.3  容器钩子75

3.3.1  容器钩子概述75

3.3.2  容器钩子实验76

3.4  探针78

3.4.1  探针概述78

3.4.2  StartUp Probe启动探针实验79

3.4.3  Readiness Probe就绪探针实验80

3.4.4  LivenessProbe存活探针实验82

3.5  本章小结83

第 4 章  Service服务发现与负载均衡84

4.1  Service原理84

4.2  ClusterIP85

4.2.1  ClusterIP概述85

4.2.2  ClusterIP实验86

4.3  NodePort88

4.3.1  NodePort概述88

4.3.2  NodePort实验89

4.4  Headless Service91

4.4.1  Headless Service概述91

4.4.2  Headless Service实验92

4.5  ExternalName94

4.5.1  ExternalName概述95

4.5.2  ExternalName实验95

4.6  LoadBalancer98

4.6.1  LoadBalancer概述98

4.6.2  如何指定LoadBalancer类型的服务IP98

4.7  Service端口范围及解除限制99

4.7.1  Service端口范围概述99

4.7.2  Service端口范围解除限制99

4.8  使用Service代理K8s外部应用100

4.8.1  使用Service代理K8s外部应用概述101

4.8.2  使用Service代理K8s外部应用实验101

4.9  本章小结103

第 5 章  Ingress-Nginx服务网关104

5.1  Ingress-Nginx概述104

5.2  Ingress-Nginx安装104

5.3  Annotations注解109

5.3.1  流量复制109

5.3.2  IP白名单110

5.3.3  IP黑名单111

5.3.4  域名转发111

5.3.5  返回字符串112

5.3.6  文件上传大小113

5.3.7  域名HTTPS访问113

5.3.8  对接外部的认证服务115

5.3.9  配置默认页面116

5.3.10  Nginx如何获取客户端真实IP117

5.3.11  重定向117

5.3.12  重写118

5.3.13  多域名指向同一个后端服务118

5.4  本章小结119

第 6 章  Kubernetes存储与持久化120

6.1  Kubernetes存储类概述120

6.2  Kubernetes持久卷声明121

6.3  持久卷的生命周期121

6.4  动态申请持久卷实验122

6.4.1  NFS共享存储搭建122

6.4.2  nfs-client-provisioner存储类搭建124

6.4.3  服务使用存储类动态申请资源实验129

6.5  PV/PVC详解131

6.5.1  PV/PVC概述131

6.5.2  PVC的创建流程131

6.5.3  PV访问模式132

6.5.4  PV回收策略132

6.5.5  PV/PVC卷状态133

6.6  Deployment直连NFS存储134

6.7  本章小结135

第 7 章  ConfigMap配置和Secret密钥管理136

7.1  ConfigMap:非敏感配置信息的集中管理136

7.1.1  ConfigMap概述136

7.1.2  使用目录方式创建ConfigMap137

7.1.3  使用文件方式创建ConfigMap139

7.1.4  使用字面值方式创建ConfigMap139

7.1.5  设置ConfigMap不允许更改140

7.1.6  通过envfrom方式指定ConfigMap140

7.1.7  通过valueFrom方式指定ConfigMap142

7.1.8  Nginx通过ConfigMap管理配置文件143

7.2  Secret:敏感信息的安全存储与访问147

7.2.1  Secret概述147

7.2.2  使用文件方式创建Secret147

7.2.3  使用YAML方式创建Secret149

7.2.4  Secret权限解析149

7.2.5  使用Docker的config.json方式创建Secret149

7.2.6  使用Kubectl创建Docker Registry认证的Secret150

7.3  本章小结151

第 8 章  Kubernetes鉴权机制152

8.1  Kubernetes鉴权机制概述152

8.2  鉴权机制的工作流程152

8.3  角色/角色绑定概述153

8.4  用户鉴权实战154

8.5  本章小结160

第 9 章  容器运行时Containerd161

9.1  Containerd概述161

9.2  安装与配置Containerd162

9.2.1  安装Containerd162

9.2.2  配置Containerd阿里云镜像加速器164

9.2.3  配置Containerd使用自建镜像仓库164

9.3  使用nerdctl管理Containerd165

9.3.1  安装nerdctl165

9.3.2  nerdctl常用命令示例166

9.4  使用nerdctl构建镜像167

9.4.1  安装BuildKit和cni-plugins168

9.4.2  构建镜像169

9.5  本章小结170

第 10 章  GitLab企业级代码仓库171

10.1  GitLab目录结构171

10.2  部署GitLab172

10.3  GitLab的配置与使用183

10.3.1  基础设置183

10.3.2  创建项目184

10.3.3  修改克隆地址185

10.3.4  拉取/提交代码188

10.4  本章小结190

第 11 章  Jenkins持续集成交付工具191

11.1  Jenkins概述191

11.2  Kubernetes集群部署Jenkins192

11.3  Jenkins对接K8s实现动态Slave199

11.3.1  基础设置并对接K8s199

11.3.2  自由风格项目实现动态Slave203

11.3.3  Pipeline流水线项目实现动态Slave205

11.4  本章小结208

第 12 章  ArgoCD声明式持续交付209

12.1  ArgoCD概述209

12.2  Kubernetes部署ArgoCD210

12.3  ArgoCD的配置及使用215

12.3.1  ArgoCD连接Kubernetes215

12.3.2  使用ArgoCD CLI集成GitLab并创建App215

12.4  本章小结221

第 13 章  云原生负载均衡之MetalLB222

13.1  自建LoadBalancer种类222

13.2  MetalLB的核心概念与架构223

13.2.1  MetalLB的核心概念224

13.2.2  MetalLB架构224

13.3  Kubernetes部署MetalLB225

13.3.1  检查是否开启IPVS功能225

13.3.2  配置并创建MetaLB服务226

13.3.3  创建LoadBalancer类型的服务228

13.3.4  使用MetalLB进行服务的外部访问229

13.4  本章小结230

第 14 章  Helm与Loki-Stack搭建日志监控系统231

14.1  Helm包管理与部署231

14.1.1  Helm概述231

14.1.2  CentOS 7系统安装Helm3232

14.2  Loki-Stack部署与实践233

14.2.1  Loki与Loki-Stack概述233

14.2.2  Helm3部署Loki-Stack234

14.2.3  外部访问Grafana237

14.2.4  日志监控查询238

14.2.5  导入仪表盘面板239

14.2.6  监控告警242

14.3  本章小结246

第 15 章  Istio微服务时代的服务网格领航者247

15.1  Istio概述247

15.2  Istio核心组件248

15.2.1  Istio-Pilot248

15.2.2  Istio-Telemetry248

15.2.3  Istio-Policy249

15.2.4  Istio-Citadel249

15.2.5  Istio-Sidecar-Injector250

15.2.6  Istio-Proxy250

15.2.7  Istio-Ingress-Gateway251

15.2.8  Istio-Envoy251

15.3  部署Istio251

15.3.1  Istioctl的安装251

15.3.2  Istioctl安装Istio253

15.4  Sidecar边车容器注入256

15.4.1  Sidecar手动注入256

15.4.2  Sidecar自动注入259

15.4.3  Sidecar取消自动注入260

15.5  4种配置资源概念详解261

15.5.1  VirtualService261

15.5.2  DestinationRule261

15.5.3  ServiceEntry262

15.5.4  Gateway262

15.6  VirtualService关键字配置示例262

15.6.1  使用weight关键字拆分流量262

15.6.2  使用timeout关键字设置请求超时时间263

15.6.3  使用retries关键字设置重试264

15.6.4  使用fault关键字设置故障注入264

15.6.5  VirtualService资源清单详解265

15.7  Istio流量治理265

15.7.1  请求头httpHeaderName266

15.7.2  HTTP流量镜像269

15.7.3  重写274

15.7.4  重定向277

15.7.5  流量权重-蓝绿与金丝雀发布282

15.7.6  超时287

15.7.7  重试293

15.7.8  断路器/熔断303

15.7.9  故障注入313

15.8  本章小结316

第 16 章  Kubernetes服务部署实战317

16.1  K8s部署MinIO开源对象存储317

16.2  K8s部署Metabase数据库连接工具321

16.3  K8s部署phpMyAdmin数据库连接工具326

16.4  K8s部署Nacos配置中心330

16.5  本章小结338

本书特色:

1云原生Kubernetes自动化运维实践》是一本来自生产一线的实践指南,旨在帮助读者掌握Kubernetes在现代IT基础设施中的自动化运维技术。《云原生Kubernetes自动化运维实践》从Kubernetes的基本概念讲起,结合大量实例演示,逐步深入到高级应用,如Ingress-Nginx服务网关、存储与持久化解决方案、配置和密钥管理、调度和认证策略等。

2对于开发者和运维人员来说,这本书提供了一套完整的工具集和最佳实践,涵盖了从集群搭建到持续集成交付的全过程。书中详细介绍了各种控制器的使用,如ReplicationController、Deployment、StatefulSet等,以及如何利用标签、容器钩子、探针和HPA实现高效的资源管理和自动伸缩。

3此外,《云原生Kubernetes自动化运维实践》还特别介绍了Jenkins持续集成交付工具和ArgoCD GitOps、MetalLB工具链的应用,帮助读者构建流畅的CI/CD管道。通过Prometheus与Grafana的集成监控,以及Istio服务网格的实践,读者将能够建立起强大的监控和流量管理体系。

4不论你是初学者还是有经验的Kubernetes管理员,《云原生Kubernetes自动化运维实践》都能提供宝贵的知识和技能,助你在云原生时代保持竞争力。

本文摘自《云原生Kubernetes自动化运维实践》,获出版社和作者授权发布。

云原生Kubernetes自动化运维实践-jd


http://www.ppmy.cn/news/1583068.html

相关文章

音频焦点 Android Audio Focus

Android 音频焦点详解 音频焦点(Audio Focus)是 Android 系统用于协调多个应用同时访问音频输出的机制。当多个应用需要播放音频时,音频焦点确保用户听到的内容不会混乱(如多个音乐应用同时播放)。以下从核心概念、使…

鸿蒙app 中 web app和h5的通信

参考的官方文档 主要是 通过web 组件 然后 将h5的 链接 放到 web 中 进行加载h5界面 注意 h5中一切的 操作原生的方法 比如说 返回 拍照 从图库拿取照片 都是调用的 原生的app的方法 大概的代码实现

《鸿蒙原生应用开发:掌控Ability生命周期的艺术》

在鸿蒙原生应用开发的广袤天地中,Ability作为构建应用的基本单元,其生命周期的有效管理宛如基石之于高楼,是打造稳定、高效且用户体验卓越应用的关键所在。随着鸿蒙生态的蓬勃发展,深入理解并巧妙运用Ability生命周期,…

华为OD机试2025A卷 - 工号不够用了怎么办(Java Python JS C++ C )

最新华为OD机试 真题目录:点击查看目录 华为OD面试真题精选:点击立即查看 题目描述 3020年,空间通信集团的员工人数突破20亿人,即将遇到现有工号不够用的窘境。 现在,请你负责调研新工号系统。继承历史传统,新的工号系统由小写英文字母(a-z)和数字(0-9)两部分构…

Karmada v1.13 版本发布!新增应用优先级调度能力

Karmada 是开放的多云多集群容器编排引擎,旨在帮助用户在多云环境下部署和运维业务应用。凭借兼容 Kubernetes 原生 API 的能力,Karmada 可以平滑迁移单集群工作负载,并且仍可保持与 Kubernetes 周边生态工具链协同。 Karmada v1.13 版本[1]现…

ffmpeg+QOpenGLWidget显示视频

​一个基于 ‌FFmpeg 4.x‌ 和 QOpenGLWidget的简单视频播放器代码示例,实现视频解码和渲染到 Qt 窗口的功能。 1)ffmpeg库界面,视频解码支持软解和硬解方式。 硬解后,硬件解码完成需要将数据从GPU复制到CPU。优先采用av_hwf…

[AI]自动化编写代码工具整理

[AI]自动化编写代码工具整理 字节跳动 国内版 Trae - AI 原生 IDE 国际版 Trae - Ship Faster with Trae Cursor Cursor - The AI Code Editor

Leetcode 3493. Properties Graph

Leetcode 3493. Properties Graph 1. 解题思路2. 代码实现 题目链接:3493. Properties Graph 1. 解题思路 这一题的话是要考虑最终聚合的簇的个数,因此很明显就是一个并查集的典型题目。因此,我们只需要创建一个并查集,然后两两…