一. 背景
1、 为什么K8s战胜了Swarm、Mesos
从使用上来说以声明式API来降低运维的操作成本。在生态系统建设方面以极高的可扩展性来提升社区活跃度。从这两个方面既可以填充K8s的不足,也极大的简化了运维操作过程。
2、 架构侧面
在K8s的各种文档、书籍中都没有从架构方面说明K8s的架构层面为什么是好的架构设计。
本文主要讨论K8s在架构层面上的一些内容,下面逐步的进行细化讨论。
二. K8s简述
本章通过对K8s内部原理的说明来对K8s有一个基础认知,来展示一些K8s的架构特种在后面对架构的分析与说明奠定基础。
在Ops的业务中有几项:
0. 环境初始化:操作系统安装、运行环境安装、存储挂载、网络划分等等。
1. 配置管理:根据运维配置,进行服务的配置。包括:副本数,可靠性保证,指标等
2. 运行服务:选择运行环境进行服务配置与服务启动等
3. 监控与升级:监控服务检查是否超过阈值进行相关的扩缩容,服务的升级工作等。
K8s主要解决的就是在Ops中的业务。以不可变基础设施来解决运行环境、配置管理、运行服务的问题。以声明式API来解决运维标准化的问题。
- 不可变基础设施是结果,而不是设计 基础设施的标准化问题在Ansible中是通过playbook来完成的,而K8s使用容器镜像做为基础设施的标准化。这其中的最大区别在于Ansible可以帮助进行标准化运行环境,而K8s中的容器镜像中包含的内容有运行环境,服务配置,服务,监控等。这里从业务层面上来说,K8s提供了镜像的版本而Ansible提供的是基础运行环境的运行以及部署能力。 Ansible为服务配置、服务升级、运行环境的管理比K8s更为灵活,可以通过不同的playbook的配置进行处理。而K8s对于运行环境、服务配置的管理是不足的为了简化这部分的管理复杂度。这部分工作都通过容器镜像来进行管理。所以作者认为不可变基础设施是结果,而不是设计。
- 声明式API解决运维自动化、标准化问题 面向终态的声明式API解决了运维工作中的一个重要工作:自动化、标准化。自动化、标准化、可视化、智能化是运维管理中的重要目标。使用声明式API将服务的定义都抽象出来、标准化的定义服务,就解决了运维标准化问题。
2.1 用户概念

Kubernetes用户概念
K8s的核心概念以及之间的关系。这里的概念都是给用户来操作、管理K8s中的对象所使用的。在K8s的使用过程中是理解这些概念并了解作用原理。

本文主要探讨Kubernetes(K8s)在架构层面的优势,解释为何K8s战胜了Swarm和Mesos。通过控制面和数据面的过程,阐述K8s如何解决Ops业务中的问题,强调了声明式API和不可变基础设施的重要性。文章详细分析了K8s的控制面组件,如API Server、Controller Manager、Scheduler和Kubelet的工作流程,以及微内核、事件驱动、控制环路等架构风格的应用。
最低0.47元/天 解锁文章
1248

被折叠的 条评论
为什么被折叠?



