Kubernetes(k8s)部署模式发展

简介: Kubernetes(k8s)部署模式发展

1 简介

在部署应用程序的方式上,主要经历了三个时代:

传统部署:互联网早期,会直接将应用程序部署在物理机上

优点:简单,不需要其它技术的参与

缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响

虚拟化部署:可以在一台物理机上运行多个虚拟机,每个虚拟机都是独立的一个环境

优点:程序环境不会相互产生影响,提供了一定程度的安全性

缺点:增加了操作系统,浪费了部分资源

容器化部署:虚拟化类似,但是共享了操作系统

优点:可以保证每个容器拥有自己的文件系统、CPU、内存、进程空间等

运行应用程序所需要的资源都被容器包装,并和底层基础架构解耦

容器化的应用程序可以跨云服务商、跨Linux操作系统发行版进行部署

2 物理单机(~2000)

早期在物理服务器上运行应用程序也叫做传统的部署。

  • 在商用服务计算领域几乎都是以单机为基础计算单元对计算资源 进行管理和协调控制的
  • 部署新应用往往需要购买一台物理机器或者一组机器,并在机器上进行构建,部署和运行,而且一台机器往往只能运行单个应用,成本高,利用率低

2.1 主要代表

IBM、Sun公司

  早期在物理服务器上运行应用程序也叫做传统的部署。
  传统部署时代: 在物理服务器上运行应用程序,无法为物理服务器中的应用程序定义资源边界,这会导致资源分配的问题。
  例如,如果在物理服务器上运行多个应用程序,则可能存在一个应用程序占用大部分资源的情况,因此导致其他应用程序获取不到资源,所以往往解决方案是在不同的物理服务器上运行每个应用程序,但是由于资源未得到充分利用,没有扩展,组织和维护这么多物理服务器的成本很高。

3 虚拟化:初期(2001~2009)

3.1 VMware

VMware:2001年,Xen:2003年,KVM:2007年

  • VMware发布了针对服务器市场的虚拟化技术方案:提升计算资源的利用率和降低使用成本
  • Vmware、Xen和KVM三足鼎立,促进了VM概念的普及,拉开了虚拟化云计算时代的大幕,基础计算单元变为VM,服务端应用的构建、部署和运行逐步迁移到虚拟机VM上了。
  • 充分地物理单机将划分为多个虚拟机,提高计算机资源的利用率和降低成本

3.2 laaS

AWS 2006年,GCE(Google Compute Engine)2008年

  • 基于虚拟机技术的Amazon Web Services(AWS)开启了Infrastructure-as-a-Service(IaaS基础设施即服务)的市场
  • 实现了自助的、按需租用以VM为基本计算单元的计算资源。
  • 应用的部署运行依然以vm为单元并通过laaS厂商提供的控制台实现高效的计算资源管理。

  这个时期也称为虚拟化部署时代:作为解决方案,引入了虚拟化。它允许在单个物理服务器的CPU上运行多个虚拟机(VM)。虚拟化允许应用程序在VM之间隔离,并提供一定程度的安全性,因为一个应用程序无法自由访问另一个应用程序的信息。
  虚拟化可以更好地利用物理服务器中的资源,并且可以实现更好的可扩展性,因为可以轻松添加或更新应用程序,降低硬件成本等等。每个VM都是在虚拟化硬件之上运行所有组件(包括其自己的操作系统)的完整计算机。

4 虚拟化:成熟期(2010~至今)

4.1 OpenStack

OpenStack 2010 诞生,推动开源laaS平台的快速发展,推动商家将自有数据中心改造为虚拟化平台,部署数据敏感、业务敏感的核心应用

  • 部署形式:公有云、私有云、混合云
  • 服务模式:laaS、PaaS(Heroku 2009)、SaaS等

4.2 虚拟化四巨头


AWS、Azure、Aliyun、GCE(Google Compute Engine):2015-2017

基于虚拟化技术的公有云爆发式增长,形成公有云laaS四巨头

2017年底,全球企业的一半以上的计算资源放在了公有云上,半数企业在内部完成了私有云部署

5 容器化:(2013-至今)

5.1 Docker

2013 年诞生

  • 以Docker为代表的内核容器技术不是新技术,而是将已有技术(LXC、cgroups、UnionFS)进行了更好的整合和包装,并形成了一种标准镜像格式。
  • 与VM相比,容器具有开发交付流程操作对象同步、执行更为高效、资源占用更为集约等优势。
  • 计算基本单元由虚拟机变为了容器,越来越多应用的构建、部署与运行选择在容器中进行。

  Docker能够解决什么问题?如果我们在一台服务器上只跑很多个服务,比如说有一个服务内存泄漏把整个服务器内存占满了,其他服务也跟着倒霉,所以需要把每个服务隔离起来,让它们只使用自己那部分有限的CPU,内存和磁盘以及依赖的软件包。Docker相比虚拟机来说少了操作系统这一层,所以占用的资源少,启动速度快,能够提供一定程度的隔离。而且运维简单,可以克隆多个个环境相同的容器。
  这个时期也称为容器部署时代:容器类似于VM,但它们具有宽松的隔离属性,可在应用程序之间共享操作系统(OS)。因此,容器被认为是轻量的的。与VM类似,容器具有自己的文件系统,CPU,内存,进程空间等。

6 云原生:初期(2015-至今)

6.1 云原生模式

  • 随着容器技术的出现以及应用所面临的外部环境的变化,云原生逐渐成为一种应用云化开发、部署和运行的主流方式。基础前提:应用的容器化和微服务化。容器,作为应用部署、运行和管理的基本单元;
  • 核心:借助容器管理自动化平台进行动态编排和资源优化利用。

6.2 K8S

CNCF,Kubernetes:2015年

就在Docker容器技术被炒得热火朝天之时,大家发现,如果想要将Docker应用于具体的业务实现,是存在困难的——编排、管理和调度等各个方面

CNCF组织的成立为应用上云安全地采用云原生模式提供了更稳、更快、更安全的解决方案,其核心是Kubernetes。从众多强大对手中脱颖而出

6.3 趋势

  • 应用部署运行模式:单机->虚拟机->容器->云原生
  • 应用部署运行:更敏捷、更自动化、更有效率、更低成本
  • 开发者:更聚焦于应用本身

7 发展变迁

应用部署运行模式的演变图:

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
3天前
|
存储 Kubernetes 对象存储
部署DeepSeek但GPU不足,ACK One注册集群助力解决IDC GPU资源不足
借助阿里云ACK One注册集群,充分利用阿里云强大ACS GPU算力,实现DeepSeek推理模型高效部署。
|
8天前
|
存储 Kubernetes 测试技术
企业级LLM推理部署新范式:基于ACK的DeepSeek蒸馏模型生产环境落地指南
本教程演示如何在ACK中使用vLLM框架快速部署DeepSeek R1模型推理服务。
|
9天前
|
存储 人工智能 弹性计算
NVIDIA NIM on ACK:优化生成式AI模型的部署与管理
本文结合NVIDIA NIM和阿里云容器服务,提出了基于ACK的完整服务化管理方案,用于优化生成式AI模型的部署和管理。
|
1月前
|
存储 运维 Kubernetes
正式开源,Doris Operator 支持高效 Kubernetes 容器化部署方案
飞轮科技推出了 Doris 的 Kubernetes Operator 开源项目(简称:Doris Operator),并捐赠给 Apache 基金会。该工具集成了原生 Kubernetes 资源的复杂管理能力,并融合了 Doris 组件间的分布式协同、用户集群形态的按需定制等经验,为用户提供了一个更简洁、高效、易用的容器化部署方案。
正式开源,Doris Operator 支持高效 Kubernetes 容器化部署方案
|
3天前
|
人工智能 Kubernetes 异构计算
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
本教程演示如何在ACK中多机分布式部署DeepSeek R1满血版。
|
2月前
|
存储 Kubernetes Docker
Kubernetes(k8s)和Docker Compose本质区别
理解它们的区别和各自的优势,有助于选择合适的工具来满足特定的项目需求。
228 19
|
2月前
|
存储 Kubernetes 容器
K8S部署nexus
该配置文件定义了Nexus 3的Kubernetes部署,包括PersistentVolumeClaim、Deployment和服务。PVC请求20Gi存储,使用NFS存储类。Deployment配置了一个Nexus 3容器,内存限制为6G,CPU为1000m,并挂载数据卷。Service类型为NodePort,通过30520端口对外提供服务。所有资源位于`nexus`命名空间中。
|
1月前
|
缓存 容灾 网络协议
ACK One多集群网关:实现高效容灾方案
ACK One多集群网关可以帮助您快速构建同城跨AZ多活容灾系统、混合云同城跨AZ多活容灾系统,以及异地容灾系统。
|
2月前
|
Kubernetes Ubuntu 网络安全
ubuntu使用kubeadm搭建k8s集群
通过以上步骤,您可以在 Ubuntu 系统上使用 kubeadm 成功搭建一个 Kubernetes 集群。本文详细介绍了从环境准备、安装 Kubernetes 组件、初始化集群到管理和使用集群的完整过程,希望对您有所帮助。在实际应用中,您可以根据具体需求调整配置,进一步优化集群性能和安全性。
147 12
|
2月前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。

热门文章

最新文章