文章目录
前言
Kubernetes是用于管理容器化应用程序集群的工具,在计算机领域中,此过程通常称为编排;
用管弦乐编排比喻上面的服务编排是很恰当的,就像乐队指挥一样,Kubernetes协调地将许多微服务组合在一起构成了应用程序。Kubernetes会自动且持续地监视集群并对其组成进行调整;
了解Kubernetes架构对于部署和维护容器化的应用程序至关重要。
一、什么是Kubernetes
-
Kubernetes或简称k8s,是Google在2014年开源的一个容器集群管理系统;
-
K8s 是一个用于自动执行应用程序部署的系统。现代应用程序分散在云,虚拟机和服务器之间,手动管理应用程序不再是可行的选择。
-
K8s 将虚拟机和物理机转换为统一的API切面。然后,开发人员可以使用Kubernetes API来部署,扩展和管理容器化的应用程序。
-
它的体系结构还为分布式系统提供了一个灵活的框架。K8s为您的应用程序自动协调扩展和故障转移,并提供部署模式。
-
它有助于管理运行应用程序的容器,并确保生产环境中没有停机时间。例如,如果某个容器发生故障,则另一个容器会自动取代其位置,而最终用户根本不会注意到。
-
-
Kubernetes不仅是一个编排系统。它是一组独立的,相互关联的控制过程。它的作用是在当前状态下连续工作,并朝着期望的方向移动过程;
-
K8s 提供了容器编排、资源调度、弹性伸缩、部署管理,服务发现等一系列功能;
-
Kubernetes 目标是让容器化应用简单、高效。Kubernetes 的服务、支持和工具被广泛可用。
二、K8s的发展
-
传统部署时代
- 早期,组织在物理服务器上运行应用程序。无法为物理服务器中的应用程序定义资源边界,这会导致资源分配问题。
- 缺点:当在物理服务器上运行多个应用程序,可能会出现一个应用程序占用大部分资源的情况,结果可能导致其他应用程序的性能下降。并且组织维护许多物理服务器的成本很高
-
虚拟化部署时代
- 作为解决方案,引入了虚拟化功能,它允许您在单个物理服务器的 CPU 上运行多个虚拟机(VM)。虚拟化功能允许应用程序在 VM 之间隔离,并提供安全级别,因为一个应用程序的信息不能被另一应用程序自由地访问。
- 因为虚拟化可以轻松地添加或更新应用程序、降低硬件成本等等,所以虚拟化可以更好地利用物理服务器中的资源,并可以实现更好的可伸缩性;
-
容器部署时代
- 容器类似于 VM,但是它们具有轻量级的隔离属性,可以在应用程序之间共享操作系统(OS)。因此,容器被认为是轻量级的。
- 容器与 VM 类似,具有自己的文件系统、CPU、内存、进程空间等。由于它们与基础架构分离,因此可以跨云和 OS 分发进行移植;
三、K8s 具备的特性
-
1)自我修复
- ①在节点故障时重新启动失败后的容器,替换和重新部署,保证预期副本数量;
- ②杀死健康检查失败的容器,并且在未准备好之前不会处理客户端请求,确保线上服务不中断。