10年高级工程师用5分钟带你一次性搞懂Kubernetes的设计理念

2022-10-28 11:15:05 浏览数 (1)

Kubernetes的设计理念

可能大家看到网络上有好多人都讲解了Kubernetes的设计理念,但是我感觉都不是很全,今天我就给大家好好讲解一下!首先讲解四大原则!

Kubernetes的设计原则

Kubernetes的核心是围绕应用进行大规模的容器扩展和管理,实现自动化部署,同时支持资源调度、集群管理、服务注册与发现、服务编排、服务自愈、安全管理等功能。Kubernetes本身基于微服务架构的设计思想,我们可以从中借鉴其分布式设计的理念和经验。

分层原则

Kubernetes作为分布式的云操作系统,其设计理念和功能很多都借鉴了Linux的设计思想,其分层(应用层、管理层、接口层、生态层)的架构设计就是其中的重要理念。面向API设计原则在Kubernetes平台中,API是管理操作的对象,API Server组件在整个Kubernetes分布式系统中处于统领地位。

容错性设计原则

Kubernetes保证每个模块都可以在出错后自动恢复,不会因为连接不到其他模块而自我崩溃。必要时,每个模块都可以优雅地进行服务降级。

扩展性设计原则

Kubernetes的控制机制保证了分布式系统下容器运行的稳定性和高可靠性。作为云原生操作系统,Kubernetes开放了容器运行时接口(CRI)、容器网络接口(CNI)和容器存储接口(CSI)。

Kubernetes与微服务

我们将Kubernetes的核心组件和微服务架构的设计理念加以对比。

● Kubernetes中的核心概念是Service,表示一个业务系统的“微服务”概念。每个具体的Service都对应一组独立、隔离、业务功能单一的容器进程。

● Kubernetes中的API Server相当于微服务架构中的API网关,实现了前后端模块之间的解耦。

● Kubernetes使用DNS作为服务注册发现机制。相比微服务架构中专有的服务注册与发现组件,DNS具备更好的异构系统的监控性。

● Kubernetes中的众多组件和资源对象都是功能独立的。每个组件都有自己独立的功能,这符合微服务架构独立功能、独立优化、独立演进的思想和理念。

● Kubernetes作为一个容器运行编排管理引擎,始终在技术栈和语言倾向上保持中立,符合微服务架构的技术多样性的特性。

● Kubernetes包含一组可扩展接口,这让它具备了更好的可扩展性。

Kubernetes与DevOps

Kubernetes持续交付的优势是让开发者可以将部署工作提前到开发阶段,通过容器技术统一交付代码和环境配置,这样就省去了开发与运维信息同步的时间,避免了信息传递过程中的信息丢失问题,保证了资源与环境的一致性。

另外,在服务的运行过程中,Kubernetes可以结合DevOps来保证服务的高可用、弹性伸缩、负载均衡、灰度发布等平台功能。

下 面 是 Kubernetes 、 Docker 和 底 层 计 算 资 源 的 关 系 图 。

Kubernetes一方面作为连接底层物理资源与应用服务的桥梁,屏蔽应用服务与底层物理环境的直接交互。另一方面,借助DevOps持续开发、持续集成工具,微服务以容器的形态运行在Kubernetes私有云平台上。

本文给大家讲解的内容是Kubernetes容器管理,Kubernetes的设计理念

  1. 下篇文章给大家讲解的内容是Kubernetes容器管理,SpringCloud与Kubernetes的生态融合
  2. 觉得文章不错的朋友可以转发此文关注小编;
  3. 感谢大家的支持!

本文就是愿天堂没有BUG给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦。

0 人点赞