Kubernetes架构设计与核心组件工作流

Kubernetes是谷歌开源的容器编排引擎,架构和设计思想来源于谷歌内部使用调度工具——Borg。Borg是谷歌一个久负盛名的的内部使用的大规模集群管理系统,它基于Linux Container(LXC)技术,提供了面向应用的容器集群部署和管理系统。Kubernetes的目标旨在消除编排物理/虚拟计算,网络和存储基础设施的负担,并使应用程序运营商和开发人员完全将重点放在以容器为中心的原语上进行自助运营。实现资源管理的自动化,以及跨多个数据中心的资源利用率最大化。

Kubernetes是一套完备的容器集群管理引擎,它提供了各种机制和接口来保证应用的快速发布和健康运行,提供了丰富的命令行工具(CLI)和API接口,便于与集群交互,同时Kubernetes提供了多层次的安全防护和隔离机制,多租户应用的支撑能力,应用的全生命周期管理,可扩展的自动资源调度机制,多粒度的资源配额管理能力,多租户支持的统一配置管理组件,多可用区域支撑,Kubernetes提供了一整套完善的容器管理工具,为容器集群管理提供了一站式服务。

Kubernetes架构

Kubernetes的整体架构,如下图所示:

Kubernetes架构设计与核心组件工作流

Kubernetes主要由以下几个核心组件组成:

• etcd保存了整个集群的状态;

• kube-apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制;

• kube-controller-manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;

• kube-scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;

• kubelet负责维持容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;

• Container runtime负责镜像管理以及Pod和容器的真正运行(CRI),默认的容器运行时为Docker;

• kube-proxy负责为Service提供cluster内部的服务发现和负载均衡。

Kubernetes架构设计与核心组件工作流

除了核心组件,还有一些推荐的Add-ons:

• kube-dns负责为整个集群提供DNS服务

• Ingress Controller为服务提供外网入口

• Heapster提供资源监控

• Dashboard提供 GUI

• Federation提供跨可用区的集群

• Fluentd-elasticsearch提供集群日志采集、存储与查询

下图描述了创建pod的对象出发,其Kubernetes各个组件之间的交互及其工作流的时序图:

Kubernetes架构设计与核心组件工作流

通过上图了解到创建pod的对象时,Kubernetes各个组件之间的交互及其工作流,使Kubernetes从业者更能理解Kubernetes各个组件的作用和相互之间怎么交互,想要了解更多Kubernetes内容,请关注新钛云服公众号。

了解新钛云服

新钛云服正式获批工信部ISP/IDC(含互联网资源协作)牌照

TiOps,支持多云环境安全远程运维,疫情期间免费对外开放,助力远程安全办公!

深耕专业,矗立鳌头,新钛云服获千万Pre-A轮融资

新钛云服,打造最专业的Cloud MSP+,做企业业务和云之间的桥梁

新钛云服一周年,完成两轮融资,服务五十多家客户

上海某仓储物流电子商务公司混合云解决方案

新钛云服出品的部分精品技术干货

国内主流公有云VPC使用对比及总结

万字长文:云架构设计原则|附PDF下载

刚刚,OpenStack 第 19 个版本来了,附28项特性详细解读!

Ceph OSD故障排除|万字经验总结

七个用于Docker和Kubernetes防护的安全工具

运维人的终身成长,从清单管理开始|万字长文!

OpenStack与ZStack深度对比:架构、部署、计算存储与网络、运维监控等

什么是云原生?

IT混合云战略:是什么、为什么,如何构建?

Kubernetes架构设计与核心组件工作流