从架构层面了解Kubernetes

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

一. 背景

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的使用过程中是理解这些概念并了解作用原理。

2.2 控制面过程

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值