【k8s】docker、k8s、虚拟机的区别以及使用场景

news2025/4/24 11:29:02

一、Docker

(一)概念

Docker 是一个开源的应用容器引擎,允许开发者将应用及其依赖打包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可实现虚拟化。

(二)隔离性

Docker 的隔离性基于 Linux 的 namespace 和 cgroups 技术,隔离性相对较弱,容器之间共享宿主机的操作系统内核。例如,若宿主机内核版本较低,可能影响容器中应用的运行,因为容器无法使用更高版本的内核特性。

(三)资源占用

Docker 容器资源占用非常小,无需启动完整操作系统,只需共享宿主机内核,启动速度极快,通常只需几秒。

(四)使用场景

  1. 开发环境一致性
    开发人员可在本地使用 Docker 打包应用和依赖,将容器镜像部署到测试环境、生产环境等。例如,Python Web 应用开发团队可在本地使用 Docker 构建包含 Python 运行时环境和应用代码的容器,保证不同开发人员机器及后续部署环境的应用运行环境一致,避免“在我的机器上可以运行”这类问题。

  2. 微服务架构
    Docker 非常适合微服务架构的应用部署,每个微服务可被打包成独立容器,便于管理和扩展。例如,电商系统可将订单服务、支付服务、用户服务等分别封装在不同 Docker 容器中,通过容器编排工具(如 Docker Compose)管理容器间通信和依赖关系。

  3. 持续集成和持续部署(CI/CD)
    在 CI/CD 流程中,Docker 可快速创建测试环境。代码提交后,可在 Docker 容器中运行自动化测试,测试完成后销毁容器,高效利用资源。例如,软件开发团队每次提交代码后,CI 工具拉取代码,构建 Docker 容器镜像,然后在容器中运行单元测试和集成测试。

二、Kubernetes(K8s)

(一)概念

Kubernetes 是一个开源的容器编排平台,用于自动化容器的部署、扩展和管理。它主要针对容器的集群管理,而非像 Docker 那样侧重于单个容器的创建和管理。

(二)隔离性

Kubernetes 本身不提供隔离性,依赖容器运行时(如 Docker)来实现隔离。它主要关注容器的编排和管理,例如容器的调度、负载均衡、自动扩缩容等功能。

(三)资源占用

Kubernetes 本身会占用一定资源来管理集群,需运行一系列控制平面组件(如 API Server、Controller Manager、Scheduler 等),这些组件会占用一定 CPU、内存等资源。不过,它可通过高效资源管理策略优化资源使用,例如根据应用负载情况动态调整容器资源分配。

(四)使用场景

  1. 大规模容器管理
    在企业级应用中,可能有成百上千个容器需要管理,Kubernetes 可方便管理这些容器的生命周期。例如,大型互联网公司后端服务由大量容器组成,Kubernetes 可根据流量情况自动扩展容器数量,流量下降时自动减少容器数量,节省资源。

  2. 多环境管理
    Kubernetes 可方便管理开发、测试、生产等多种环境,通过配置不同命名空间隔离不同环境资源。例如,开发团队可在开发环境中频繁更新容器镜像进行测试,不影响生产环境稳定运行。

  3. 服务发现和负载均衡
    Kubernetes 提供强大服务发现和负载均衡功能,容器间可通过服务名通信,Kubernetes 自动处理负载均衡。例如,Web 应用前端容器需访问后端数据库服务,Kubernetes 会根据配置将请求分发到多个后端数据库容器中的一个,保证系统高可用性。

三、虚拟技术(以虚拟机为例)

(一)概念

虚拟机(VM)是在物理服务器上模拟出的虚拟计算机,有自己的操作系统、应用程序和资源。例如,可在一台物理服务器上创建多个虚拟机,每个虚拟机运行不同操作系统,如 Windows Server 和 Linux。

(二)隔离性

虚拟机隔离性很强,每个虚拟机有独立操作系统内核,虚拟机之间相互隔离。即使一个虚拟机出现故障或被攻击,一般也不会影响到其他虚拟机。例如,在数据中心,不同租户的虚拟机可运行在同一个物理服务器上,不用担心彼此干扰。

(三)资源占用

虚拟机资源占用相对较大,需启动完整操作系统,包括内核、用户空间等,启动时间也相对较长,通常需几分钟。而且虚拟机资源分配相对固定,不像容器那样可灵活动态调整。

(四)使用场景

  1. 多操作系统环境
    当需在一台物理服务器上运行多种操作系统时,虚拟机是合适选择。例如,软件开发团队需测试软件在不同操作系统上的兼容性,可在一台服务器上创建多个虚拟机,分别安装 Windows、macOS 和 Linux 等操作系统。

  2. 隔离性要求高的场景
    对于对安全性和隔离性要求高的应用,如金融行业的核心业务系统,虚拟机可提供更好隔离保障。即使虚拟机内部应用出现漏洞,也不会轻易影响到其他虚拟机和宿主机。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2341422.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Super-Vlan和MUX-Vlan的原理、配置、区别

Super-Vlan 原理 Super-Vlan也叫Aggregate-Vlan。 一般的三层交换机中,通常是采用一个VLAN对应一个vlanif接口的方式实现广播域之间的互通,这在某些情况下导致了IP地址的浪费。因为一个VLAN对应的子网中,子网号、子网定向广播地址、子网缺…

el-table怎么显示 特殊单元格的值

1. 在 el-table-column 上绑定了 formatter 方法 formatEntityName ,它会对每一行该列的数据( cellValue )进行处理。 2. 在 formatEntityName 方法中,尝试对传入的 cellValue 进行 JSON.parse 操作,并根…

2025-04-23 Python深度学习3——Tensor

文章目录 1 张量1.1 数学定义1.2 PyTorch中的张量 2 创建 Tensor2.1 直接创建**torch.tensor()****torch.from_numpy()** 2.2 依据数值创建**torch.zeros() / torch.zeros_like()****torch.ones() / torch.ones_like()****torch.full() / torch.full_like()****torch.arange() …

在统信UOS/麒麟Kylin OS操作系统中配置APT和GIT代理

在统信UOS/麒麟Kylin OS操作系统中配置APT和GIT代理 在内网环境中,直接访问外部资源可能会受到限制,这时候配置APT和GIT的代理就显得尤为重要。本文将详细介绍如何在统信UOS和麒麟Kylin OS操作系统中配置APT和GIT的代理。 为什么需要配置APT和GIT代理&…

第十七讲、Isaaclab中使用操作空间控制器

0 前言 官方教程:https://isaac-sim.github.io/IsaacLab/main/source/tutorials/05_controllers/run_osc.html IsaacsimIsaaclab安装:https://blog.csdn.net/m0_47719040/article/details/146389391?spm1001.2014.3001.5502 有时候,仅使用…

基于SpringBoot的校园二手商品在线交易系统+含项目运行说明文档

基于SpringBoot的校园二手商品在线交易系统含项目运行说明文档 专注校园二手交易平台是一个基于Java的在线市场,专为学生设计,便于买卖二手商品。平台提供全面的用户管理功能,包括学生、管理员和二手商品卖家账户管理。商品管理功能允许用户…

详解springcloud gateway工作原理、断言、filter、uri、id、全局跨域、globalfilter等以及关键源码实现

1.gateway概念 网关就是当前微服务项目的"统一入口"程序中的网关就是当前微服务项目对外界开放的统一入口所有外界的请求都需要先经过网关才能访问到我们的程序提供了统一入口之后,方便对所有请求进行统一的检查和管理 2. 网关的主要功能 将所有请求统一经过网关网…

C++面向对象特性之继承篇

C语音是面向过程的语言,而C在其之上多了面向对象的特性,面向对象三大特性:封装性、继承性、多态性。今天主包来讲讲自己学到的关于C继承特性的知识。 一、继承是什么 继承是提高代码复用的一种重要手段。正如C的模版、泛型编程等等都是为了实现代码复用…

【AI News | 20250423】每日AI进展

AI Repos 1、suna Suna是一款完全开源的AI助手,旨在通过自然对话帮助用户轻松完成现实世界的任务。它作为您的数字伙伴,提供研究、数据分析和日常问题解决等功能,并结合强大的能力与直观的界面,理解您的需求并交付成果。Suna的工…

【学习准备】算法和开发知识大纲

1 缘起 今年(2025年)的职业升级结果:不通过。没办法升职加薪了。 需要开始完善学习,以应对不同的发展趋势,为了督促自己学习,梳理出相关学习大纲。 分为算法和开发两部分。 算法,包括基础算法和…

第七篇:linux之基本权限、进程管理、系统服务

第七篇:linux之基本权限、进程管理、系统服务 文章目录 第七篇:linux之基本权限、进程管理、系统服务一、基本权限1、什么是权限?2、为什么要有权限?3、权限与用户之间的关系?4、权限对应的数字含义5、使用chmod设定权…

爬虫案例-爬取某企数据

文章目录 1、准备要爬取企业名称数据表2、爬取代码3、查看效果 1、准备要爬取企业名称数据表 企业名称绍兴市袍江王新国家庭农场绍兴市郑杜粮油专业合作社绍兴市越城区兴华家庭农场绍兴市越城区锐意家庭农场绍兴市越城区青甸畈家庭农场绍兴市袍江王新国家庭农场绍兴市袍江月明…

学习笔记—C++—string(一)

目录 string 为什么学习string的类 string类的常用接口 string类对象的常见构造 string类对象的访问及遍历操作 operator[] 迭代器 范围for auto 迭代器(二) string类对象的容量操作 size,length,max_size,capacity,clear基本用法 reserve 提…

GPLT-2025年第十届团体程序设计天梯赛总决赛题解(共计266分)

今天偶然发现天梯赛的代码还保存着,于是决定写下这篇题解,也算是复盘一下了 L1本来是打算写的稳妥点,最后在L1-6又想省时间,又忘记了insert,replace这些方法怎么用,也不想花时间写一个文件测试&#xff0c…

MySQL数据库精研之旅第十期:打造高效联合查询的实战宝典(一)

专栏:MySQL数据库成长记 个人主页:手握风云 目录 一、简介 1.1. 为什么要使用联合查询 1.2. 多表联合查询时的计算 1.3. 示例 二、内连接 2.1. 语法 2.2. 示例 三、外连接 4.1. 语法 4.2. 示例 一、简介 1.1. 为什么要使用联合查询 一次查询需…

15.FineReport动态展示需要的列

1.首先连接自带的sqlite数据库,具体方法参考下面的链接 点击查看连接sqlite数据库 2.文件 – 新建普通报表 3.新建数据库查询 4.查询自带的销售明细表 5.把数据添加到格子中,并设置边框颜色等格式 6.查询新的数据集:column 7.点笔 8.全部添…

Windows云主机远程连接提示“出现了内部错误”

今天有人反馈说有个服务器突然连不上了,让我看下什么问题,我根据他给的账号密码试了下发现提示“出现了内部错误”,然后就是一通排查 先是查看安全组,没发现特别的问题,因为也没有调过这块的配置 然后通过控制台登录进…

最新扣子(Coze)案例教程:Excel数据生成统计图表,自动清洗数据+转换可视化图表+零代码,完全免费教程

大家好,我是斜杠君。 知识星球群有同学和我说每天的工作涉及很多数据表的重复操作,想学习Excel数据表通过大模型自动转数据图片的功能。 今天斜杠君就带大家一起搭建一个智能体,以一个销售行业数据为例,可以快速实现自动清洗Exc…

如何安装Visio(win10)

首先下载下面这些文件 HomeStudent2021Retail.img officedeploymenttool_17531-20046.exe office中文语言包.exe 确保这些文件都在一个文件夹内(我已经上传这些资源,这些资源都是官网下载的) 官网资源下载教程 1.下载Office镜像&#xff0…

建筑安全员 A 证与 C 证:差异决定职业方向

在建筑行业的职业发展道路上,安全员 A 证和 C 证就像两条不同的岔路,它们之间的差异,在很大程度上决定了从业者的职业方向。 从证书性质和用途来看,A 证是从业资格证书,更像是一把开启安全管理高层岗位的 “金钥匙”。…