文章目录
- 一、Kubernetes简介:引领云原生潮流
- 二、K8s的核心特性:自动化与智能化
- 三、K8s的实践应用:打造高效云原生应用架构
- 四、K8s的挑战与应对:安全与性能并重
- 五、K8s的未来展望:无限可能与挑战并存
- 《Kubernetes快速进阶与实战》
- 编辑推荐
- 适读人群
- 内容简介
- 作者简介
- 目录
- 前言
一、Kubernetes简介:引领云原生潮流
在云计算飞速发展的今天,Kubernetes(简称K8s)凭借其强大的容器编排能力,迅速成为云原生时代的核心引擎。K8s不仅简化了容器化应用的部署与管理,还为企业提供了高效、可扩展的云原生应用架构。
二、K8s的核心特性:自动化与智能化
K8s的核心特性在于其自动化和智能化的容器编排能力。它可以自动部署、扩展和管理容器化应用,实现服务的自动发现和负载均衡。同时,K8s还支持滚动更新和自动扩容,确保应用在高峰期间能够稳定运行。
三、K8s的实践应用:打造高效云原生应用架构
K8s在实践中得到了广泛应用,特别是在微服务架构中。通过K8s,企业可以轻松地构建可扩展、高可用的微服务应用,实现快速迭代和持续交付。此外,K8s还支持多云部署和混合云管理,帮助企业打破云平台的限制,实现更灵活的资源管理。
四、K8s的挑战与应对:安全与性能并重
尽管K8s带来了诸多便利,但企业在使用过程中也面临着一些挑战。首先是安全问题,如何确保K8s集群的安全性成为企业关注的焦点。其次是性能问题,随着应用规模的扩大,如何优化K8s集群的性能成为企业亟待解决的问题。
针对这些挑战,企业需要采取一系列措施来应对。例如,加强K8s集群的安全管理,包括访问控制、加密通信和审计日志等方面;同时,通过合理的资源分配和性能调优,提升K8s集群的稳定性和运行效率。
五、K8s的未来展望:无限可能与挑战并存
随着云原生技术的不断发展,K8s在未来将继续发挥重要作用。它将成为AI、大数据等领域的关键基础设施之一,为企业的创新和发展提供强大支持。然而,随着技术的不断进步和市场的不断变化,K8s也将面临更多的挑战和机遇。企业需要保持敏锐的洞察力,紧跟时代步伐,不断提升自身的技术实力和实践经验,以应对未来市场的挑战和机遇。
Kubernetes作为云原生时代的核心引擎,正在引领着企业数字化转型的进程。企业需要积极拥抱K8s,充分发挥其潜力,为企业的创新和发展注入新的动力。
《Kubernetes快速进阶与实战》
编辑推荐
一本书讲透k8s基础,k8s集群的安装、配置、管理、监控,k8s集群的自动化部署、运维与容器编排,丰富的实践案例帮助读者快速积累k8s实战经验。
配套资源丰富,包括关键示例程序源代码、配置文件、数据文件,以及配套的《实践手册》免费电子书、系列高清课程视频,方便读者参考学习。
适读人群
云原生开发者,云计算与大数据系统开发工程师、系统运维工程师
内容简介
本书精选Kubernetes的硬核知识,帮助读者快速进阶和积累Kubernetes实战经验。本书共8章,主要包括认识Kubernetes,快速构建Kubernetes集群,Kubernetes核心对象使用,Kubernetes容器编排实践,Kubernetes系统运维与故障处理,构建Kubernetes高可用集群,Kubernetes监控与告警(Prometheus+Grafana)和基于Kubernetes的CI/CD项目综合实践(GitLab+ Harbor+Jenkins)。
本书前三章可以帮助读者快速掌握Kubernetes核心知识和高频操作;第4、第5章帮助读者快速掌握Kubernetes的进阶使用;第6~8章是Kubernetes及其外围系统的综合应用,帮助读者快速积累实战经验。
本书既可以作为云原生及相关行业从业者的技术参考书,也可以作为高等院校计算机、云计算和大数据相关专业的教材。
作者简介
文艾(艾叔),解放军理工大学-奇虎360云计算联合实验室原技术负责人,系统分析师,51CTO学院严选讲师;具有多年Linux下的开发、运维和教学经验,对Linux下的Docker、Kubernetes、Hadoop和Spark等系统有深入研究和丰富的实践经验;带领团队完成了华为、中兴和奇虎360等公司的多个校企合作Linux相关项目;指导零基础本科生参加科技创新竞赛和编程大赛,共获得全国特等奖1次,一等奖2次,二等奖2次;通过“艾叔编程”公众号和网易云课堂开设了一系列Linux相关的免费课程,已帮助8万多名学习者入门编程并深受好评。
目录
前言第1章 认识Kubernetes1
1.1 Kubernetes概述1
1.1.1 Kubernetes的定义和背景1
1.1.2 Kubernetes与Docker3
1.1.3 Kubernetes与云原生4
1.2 Kubernetes 核心概念5
1.2.1 resource—Kubernetes的组成
元素5
1.2.2 Kubernetes object—定义
Kubernetes运行状态10
1.2.3 Pod—实现Kubernetes中容器的
逻辑组合11
1.2.4 RC/RS—控制Pod副本个数12
1.2.5 Deployment—在Kubernetes中
部署应用13
1.2.6 Service—以统一的方式对外
提供服务13
1.2.7 其他核心概念14
1.3 Kubernetes 系统架构15
1.3.1 Control Plane15
1.3.2 Node17
1.3.3 Addons18
1.3.4 kubectl18
1.4 高效学习Kubernetes19
1.4.1 Kubernetes快速学习路线图19
1.4.2 利用本书资源高效学习Kubernetes
(重点必读)19
1.4.3 本书所使用的软件和版本22
第2章 快速构建Kubernetes集群23
2.1 Kubernetes集群规划23
2.2 准备Kubernetes集群节点23
2.2.1 定制VMware虚拟机(实践1)23
2.2.2 小化安装CentOS 8(实践2)24
2.2.3 远程登录与文件传输(实践3)24
2.2.4 ssh远程无密码登录24
2.2.5 Docker安装与使用25
2.3 kubeadm安装与系统配置30
2.4 快速构建Control Plane35
2.5 为Kubernetes增加Node节点38
第3章 Kubernetes核心对象使用44
3.1 使用YAML创建Kubernetes
resource44
3.2 Pod典型使用47
3.3 RC/RS基本操作(实践4)51
3.4 Deployment典型使用(实践5)51
3.5 Service典型使用(实践6)52
第4章 Kubernetes容器编排实践53
4.1 Pod容器调度53
4.2 Pod多容器运行(实践 7)55
4.3 Pod容器数据持久化存储(PersistentVolume)56
4.3.1 安装NFS56
4.3.2 创建pv和pvc58
4.3.3 创建Deployment使用持久化存储60
4.4 Ingress实现统一访问Pod容器
服务62
4.4.1 创建购物网站的Deployment62
4.4.2 创建购物网站的Service64
4.4.3 创建购书网站的Deployment65
4.4.4 创建购书网站的Service66
4.4.5 创建ingress controller66
4.4.6 创建Ingress68
4.4.7 按路径统一访问Pod容器的服务70
4.5 Pod容器自动伸缩(HPA)71
4.5.1 编写HPA YAML文件71
4.5.2 创建监控对象和HPA73
4.5.3 HPA伸缩算法74
4.5.4 HPA自动伸缩测试74
第5章 Kubernetes系统运维与故障
处理78
5.1 Pod容器的高可用实践
(实践8)78
5.2 Kubernetes节点性能数据采集78
5.3 使用k8dash快速监控Kubernetes80
5.4 Kubernetes系统运维常用操作83
5.4.1 增加kubectl节点83
5.4.2 停止Kubernetes组件Pod中的
容器84
5.4.3 重置Kubernetes集群节点85
5.4.4 查看和设置Kubernetes组件的启动
参数85
5.4.5 运行Pod容器命令88
5.4.6 查看Pod容器网卡名89
5.4.7 复制文件到Pod容器89
5.4.8 查看指定进程监听的端口90
5.5 查看Kubernetes日志90
5.5.1 系统日志90
5.5.2 Kubernetes组件日志91
5.5.3 Pod启动信息和容器日志91
5.6 Kubernetes故障处理92
5.6.1 处理故障Pod92
5.6.2 容器故障调试94
第6章 构建Kubernetes高可用集群96
6.1 Kubernetes 高可用集群的架构与
规划96
6.2 构建高可用负载均衡器(Keepalived+LVS)98
6.2.1 构建LB节点99
6.2.2 构建RS节点102
6.2.3 构建Client节点105
6.2.4 测试LB + HA106
6.3 构建基于Keepalived的Kubernetes
高可用集群110
6.3.1 配置Keepalived110
6.3.2 构建Control Plane111
6.3.3 构建Node节点114
6.3.4 Kubernetes 高可用性测试115
第7章 Kubernetes监控与告警 (Prometheus+Grafana)119
7.1 Kubernetes系统组件指标
(Metrics)119
7.2 Prometheus监控Kubernetes125
7.2.1 Prometheus架构和核心概念125
7.2.2 Prometheus 快速部署(kube-prometheus)127
7.2.3 Prometheus 监控机制与配置131
7.2.4 Prometheus 监控 Kubernetes
核心组件140
7.2.5 Prometheus 监控 Kubernetes
指定对象(Exporter)145
7.3 Grafana展示Kubernetes监控
数据152
7.3.1 Grafana 快速访问152
7.3.2 Grafana 展示 Prometheus 数据源
数据(Kubernetes)154
7.3.3 Grafana 展示其他数据源的数据160
7.3.4 Grafana 配置的持久化存储164
7.4 Kubernetes 监控告警171
7.4.1 Prometheus 告警机制171
7.4.2 查看Prometheus 告警171
7.4.3 Prometheus告警规则(Rule)175
7.4.4 配置Prometheus 告警发送邮件182
7.4.5 Grafana 告警配置与邮件通知188
第8章 基于Kubernetes的CI/CD
项目综合实践(GitLab+
Harbor+Jenkins)198
8.1 CI/CD核心概念与基础198
8.2 太空入侵者游戏CI/CD方案
设计199
8.2.1 系统架构与集群规划199
8.2.2 CI/CD开发流程200
8.3 构建太空入侵者游戏开发与测试
环境201
8.3.1 构建承载和测试节点—devt
虚拟机201
8.3.2 构建开发节点—spaceinv容器202
8.3.3 构建代码管理仓库—GitLab205
8.3.4 构建容器镜像仓库—Harbor217
8.3.5 构建持续集成工具—J
前言
Kubernetes是由Google开源的一个容器编排(Orchestration)系统,它实现了集群中容器管理、部署、迁移和扩展的自动化。自2014年开源以来,Kubernetes经过多个版本的迭代和完善,已经广泛用于生产环境。Google、Microsoft、Amazon、阿里和腾讯等知名企业,都提供云上的Kubernetes服务,阿里自身的核心应用更是全部运行在Kubernetes之上。Linux基金会报告显示,2021年,云原生技术首次超过Linux自身,成为最热门的开源技术,而Kubernetes作为云原生技术的代表,则更是热门中的热门。
因此,对于IT从业人员而言,Kubernetes是一个重要的加分项和加薪项,Kubernetes学得越早,掌握得越好,就越会成为自身的一个优势。然而从学习的角度而言,Kubernetes涉及的概念新、概念多,而且需要很多的前置知识,例如Linux、网络、虚拟化、Docker容器等;而且Kubernetes是面向整个集群的容器编排,在架构、运行机制和使用上更为复杂;再加上Kubernetes是一个底层基础设施,几乎所有的应用都需要进行迁移,这些都增加了Kubernetes的学习难度。
为此,笔者根据自身在Kubernetes上的研发和使用经验,编写了《Kubernetes快速进阶与实战》这本书,本书共8章,主要包括认识Kubernetes、快速构建Kubernetes集群、Kubernetes核心对象使用、Kubernetes容器编排实践、Kubernetes系统运维与故障处理、构建Kubernetes高可用集群、Kubernetes监控与告警(Prometheus+Grafana)和基于Kubernetes的CI/CD项目综合实践(GitLab+Harbor+Jenkins)。此外,本书还提供配套的《实践手册》免费电子书和“虚拟机使用”等免费高清视频资源供读者参考学习。
这不是一本大而全的字典书,本书只讲解Kubernetes的硬核知识,旨在帮助读者快速入门和进阶Kubernetes,快速积累Kubernetes实战经验,少走弯路、少踩坑。其中,前三章可以帮助读者快速掌握Kubernetes核心知识、上手Kubernetes高频操作;第4、第5章帮助读者快速掌握Kubernetes的进阶使用;第6~8章是Kubernetes及其外围系统的综合应用,帮助读者快速积累实战经验。如果把学习Kubernetes比作穿越丛林,那么本书将给学习者最精简和有用的装备,提供有效的训练,快速积累实战经验;指出一条可行的路径,为学习者在有限的时间内穿越丛林提供保障;进而可以利用这些装备,自行去开发和探索新的路线。