版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
容器云技术的发展趋势
放眼望去,从Kubernetes问世到今天,整个技术大环境和生态也都发生了很大的变化。其中有些变化是不可避免的影响了我们身处其中的每个行业。
Kubernetes在2017年底成为了容器编排领域的事实标准,之后围绕这Kuternetes的生态持续爆发,正占领着潜力巨大的主流市场。如果说云原生在2017年还只是冒出了一些苗头,那么到了2019年云原生已经变成了成熟的被普遍接收的理念。
根据CNCF在2018年8月测量容器管理市场问题工作的报告:
员工规模5000+的企业中有40%的企业正在使用Kubernetes。Kubernetes在开发人员中也已经非常流行,有越来越多的面试者,包括后端开发、架构设计、系统运维,虽然职位不同,但是对Docker、对Kubernetes的熟悉度都已经越来越高。
Kubernetes自身
- 侧重稳定性、可扩展性、安全性
- 核心策略的变化小
- 周边生态的二次创新持续爆发
指南的内容
Kubernetes的快速入门
从核心概念、架构设计、认证授权三个方面带领你快速掌握Kubernetes的重要知识点,助力大家快速入门。
高可用集群搭建
根据每个人不同的需求,分别使用了两种方式做高可用的集群部署。一种是手动的基于二进制的方案,一种是智能化基于Kubeadm的方案。
集群部署都是采用了5个节点的示例,三台Master和两台worker节点。
网络插件我们选用了目前主流的calico,dns插件也是官方推荐的coredns,集群部署完成后,我们分别对集群中了可用性测试并部署了dashboard看板
业务系统迁移Kubernetes-准备工作
- Harbor
架构和底层原理,并部署了高可用的Harbor仓库 - 服务发现
详细分析了Kubernetes的各种服务发现策略 - IngressNginx
部署了常用的Web服务方案,IngressNginx
业务系统迁移Kubernetes-最佳实践
准备工作做好了,我们就可以迁移了。我们选择了四种常见的类型
- Dokcer化
将非Docker业务迁移到Docker - 泡在k8s中
如何让Docker化的业务跑在集群中 - 服务发现
各种业务如何在k8s中进行服务发现
CICD实践
服务迁移后,没有CICD的系统是无法运转起来的
深入k8s - 几个重要的资源对象
经过上面的几个步骤,业务已经跑起来了,可以持续集成了。但是我们上面的东西还不足以让我们的服务稳定可靠的运行在生产级的Kubernetes集群上,需要深入4大部分,深入讲解k8s必备的知识点
- 三个资源对象
namespace 、resources、label,还包括namespace对资源对象和配额的多场面隔离机制,pod资源限制的各种方式,pod的kos以及跟资源配额的关系,pod在资源紧缺时候的机制;label用于不同资源对象上的不同作用。
让大家可以合理的规划命名空间,可以通过资源配额来提升服务的稳定性,可以通过设置自助策略来提升系统的稳定性,以及灵活的利用label为各种资源打标签
深入k8s - 服务的调度和编排 - 健康检查
讲解和实践了pod的健康检查是如何工作的,它的参数该如何配合及优化 - 调度策略
调度器的整体工作原理,以及常见的预选策略及优选策略 - 部署策略
如何利用Kubernetes本身的机制,完成包括重建、滚动部署、蓝绿部署、金丝雀部署这样的部署方案 - 深入pod
了解pod的设计思想,生命周期,实现了pod容器的设计跟pod带来的特性
深入k8s - 落地与实践 - Ingress-Nginx
服务发现,在落地过程可能会遇到的问题及应对的解决方式,以及如何利用Ingress-Nginx来做AB测试、蓝绿部署和小流量测试 - PV/ PVC /StorageClass
Kubernetes的value,集中基本的value类型,和共享存储相关的PV、PVC、StorageCalss,最后实现了共享存储 - StatefulSet
一种资源类型,了解它的设计和如何实现 - Kubernetes API
了解了设计,如何和API对接,并以一个真实的项目示例让大家看到容器管理平台它可以做成什么样子
深入k8s - 日志与监控 - 日志主流方案
了解了k8s日志的特点,分析了当下主流的日志处理方案和各自的优缺点 - 从日志采集到日志展示
最后选择了一种方案,讲解了从日志采集到日志展示的完整事件 - Pometheus
k8s主流的监控方案,普罗米修斯。包括它的实现原理,支持的各种指标
IIstio
最近非常火热和有前景的一个技术,ServiceMeso代表作Istio。从架构设计、环境部署、数据展现进行讲解,让你对其有个完整的了解。接下来部署一个示例
指南可以带来的收获
- 全面、系统、深入
让你对Kubernetes有着全局深入的了解 - 效率提升、避免踩坑
环境参数
- Kubernetes 1.14.0
- Docker 17.03.x
- Java 1.8
- Harbor 1.6.0
- Promethus 2.8.1
- Istio 1.1.2
技术储备
- 熟悉Linux系统,了解常见的Shell命令
- 了解Docker的基本操作
- 熟悉JavaWeb开发
适合人群
- k8s基础薄弱但对k8s技术有浓厚兴趣的小伙伴
- 对k8s有一定了解和接触,希望系统化的深入理解的同学
- 所有对k8s有兴趣的开发工程师、架构师、Devops工程师