概念解读|K8s/容器云/裸金属/云原生...这些都有什么区别?
随着容器技术的日渐成熟,不少企业用户都对应用系统开展了容器化改造。而在容器基础架构层面,很多运维人员都更熟悉虚拟化环境,对“容器圈”的各种概念容易混淆:容器就是 Kubernetes 吗?容器云又是什么?容器怎么部署?裸金属和物理机有什么区别?容器虚拟化和虚拟化容器是一个东西吗?他们都算云原生吗?......为了帮助大家更好地理解容器基础架构层面的各种技术、选择适合自己的容器平台搭建方案,本文将针对 9 个容器热门概念进行解读和区分。
概括版
-
云原生:专为充分利用和实现云计算特性而生(的技术/产品),围绕容器技术进行发展。
-
容器:操作系统级虚拟化技术,“操作系统解耦”特性使得容器更具敏捷和可移植性。
-
Kubernetes:使用最为广泛的容器编排平台,可以大规模、自动化实现很多容器部署、管理和扩展等方面的操作。
-
容器管理(软件/平台):简化 Kubernetes 的管理与运维操作,提升容器环境整体的管理效率。
-
容器-虚拟化融合:目前一些企业用户可能同时在使用容器和虚拟化,“容器-虚拟化融合”技术能够实现两个环境互联互通、统一管理、统一调度,降低混合环境运维管理负担。主流技术有以下两种:
-
容器虚拟化:在 Kubernetes 集群中创建、运行、管理虚拟机,以 KubeVirt 为代表。
-
虚拟化容器:在虚拟化环境中部署、运行、管理容器和虚拟机,以 VMware Tanzu 和 SmartX SKS 为代表。
-
-
容器云:以云化交付的形式提供的容器平台,一般包含 IaaS 层和 PaaS 层能力。
-
裸金属:云化交付的物理服务器,在使用 Kubernetes 时,“裸金属“也可表示以物理机作为运行环境,与基于虚拟化环境运行 Kubernetes 进行对比。

云原生(Cloud Native)
根据 Gartner 在《中国 IT 基础设施技术成熟度曲线,2024》中的定义,云原生即“专为充分利用和实现云计算特性而生”,这些特性既包括一部分云计算的原始定义,也包括以服务形式提供的功能。
因此,“云原生”是一个比较包容的概念,Gartner 也提到,目前用户对“云原生”有两种常见的理解:一种是“cloud-service-provider-native”,由云服务商原生的技术或产品;另一种是“container-native”,专为容器环境原生的技术或产品。其中,后面这种理解更符合“云原生”的初衷,也得到更多人的使用。在这种理解下,“云原生”技术/产品充分发挥容器、服务网格、基础设施自动化、CI/CD 等技术特性,加速并简化应用程序生命周期,从而提升 IT 生产力和敏捷性。
容器(Container)
参考 Kubernetes 指南的定义,容器是“一种便携式、轻量级的操作系统级虚拟化技术。它使用 namespace 隔离不同的软件运行环境,并通过镜像自包含软件的运行环境,从而使得容器可以很方便的在任何地方运行”。
容器 vs 虚拟化
与“软硬件解耦”的虚拟化技术不同,容器技术只对操作系统以上的层级进行虚拟化,容器间共享操作系统,在“硬件解耦”的同时实现了“操作系统解耦”,使得容器能够灵活地在多种运行环境间迁移(包括私有云、公有云、虚拟化、物理机等),获得超越虚拟机的敏捷性、数据一致性和可移植性,加快企业 IT 技术发展和业务效率。
云原生 vs 容器
容器是云原生技术发展的基石,但并不是所有支持容器/能在容器环境中使用的技术都是“云原生”技术。例如,用户可以采用本地磁盘/外置集中式存储为容器环境提供存储服务,但本地磁盘并不算是“云原生存储”。
Kubernetes(K8s)
Kubernetes 是一个开源容器编排平台,也是目前使用最为广泛的容器编排平台,由云原生计算基金会(CNCF)进行管理。以容器运行应用程序,传统的运维方式要求运维人员同时管理数个容器的创建、销毁、迁移、扩容等动作,非常耗费时间和精力。Kubernetes 能够帮助运维人员,将部署、管理和扩展容器化应用过程中涉及的许多手动操作以自动化的方式完成,提供的服务包括服务发现和负载均衡、存储编排、自动部署和回滚、资源计算、自我修复、密钥管理、水平扩展等,有效降低容器部署与运维难度,提高应用开发和交付速度。
Kubernetes 以集群的方式进行部署,每个 Kubernetes 集群由一个控制平面(Control Plane)和一个或多个工作节点(Node)组成,其中控制平面用来管理集群的整体状态,Node 是真正运行容器的主机,以 Pod 进行容器的管理。
Kubernetes vs Docker
Docker 是一个开源平台,进一步对容器进行了封装,以便各个进程相互独立运行。Docker 可以作为独立平台部署,也可被用作由 Kubernetes 编排的容器运行时(container runtime),将 Docker 在所有节点上对所有容器执行的操作进行自动化处理。Docker 和 Kubernetes 可以搭配使用,开发人员往往会使用 Docker 来建立和操作容器映像,使用 Kubernetes 进行大规模的容器编排。举例来说就是,容器是一个个集装箱,Docker 是装载集装箱的货船,Kubernetes 将货船组成同一个舰队,而更上层的容器管理服务(见下)就是码头的调度。
容器管理(Container Management)
虽然 Kubernetes 能够帮助用户轻松地进行容器编排,但其学习成本较高,原生 Kubernetes 也只支持命令行模式(Kubectl),对于一些习惯了虚拟化图形式操作界面的运维人员并不友好,带来了较大的管理难度。因此,一些厂商提供了容器管理软件/平台,简化 Kubernetes 的管理与运维操作,帮助用户高效进行容器管理。
根据 Gartner 在《中国 IT 基础设施技术成熟度曲线,2024》中的描述,容器管理平台的主要功能包括编排和调度、服务发现和注册、镜像注册表、路由和网络、服务目录、管理用户界面以及 API。借助这些能力,企业能够更加轻松地管理、扩展基于微服务的应用程序,加速实现应用云原生架构和基础设施现代化转型。不过,目前国内很多容器管理产品和云原生生态系统严重依赖开源技术,建议用户(尤其是对数据合规性要求严格的企业)仔细甄别产品能力和潜在安全风险。
Kubernetes vs 容器管理
容器管理软件/平台一般构建在 Kubernetes 之上,协助进行 Kubernetes 集群生命周期的自动化管理,如自动化完成 Kubernetes 集群创建、删除、更新、扩缩容等原本流程繁琐的重复性操作。另外,针对混合环境带来的应用交互与管理难题,一些容器管理服务/软件(如 SKS)还可帮助企业实现多个应用运行环境(如虚拟化和容器环境)的统一管理与网络互通。欲深入了解中国容器管理产品现状与挑战,请阅读:趋势分享|Gartner解读中国企业容器管理新挑战:混合环境、容器安全、AI支持。
容器-虚拟化融合
目前,企业内部虽然越来越倾向于以容器化的方式部署新的业务应用,但仍有不少应用系统需要运行在虚拟机上,如难以容器化改造的传统应用系统、容器化后会大大增加运维复杂度的一些有状态应用等。因此,不少用户会在未来 3-5 年内存在虚拟化与容器环境共存的情况。但这两个环境往往难以统一管理,应用网络也难以互联互通,资源使用也不能统一调度(详见往期文章),这些挑战就催生了两种主要的“容器-虚拟化融合”技术。
容器虚拟化(VM in Container)
在 Kubernetes 集群中创建、运行、管理虚拟机,以 KubeVirt 为代表。这种方案下,Kubernetes 部署在裸金属上,用户使用 Kubernetes API 对 Kubernetes 集群上的容器和虚拟机进行统一管理,降低学习成本。
虚拟化容器(Coexist)
在虚拟化环境中部署、运行、管理容器和虚拟机,以 VMware Tanzu 和 SmartX SKS 为代表。这种方案下,用户部署虚拟化/超融合平台运行虚拟机,Kubernetes 集群构建在其中一部分虚拟机之上,用户通过管理平台对 Kubernetes 集群和虚拟机进行统一管理。
容器虚拟化 vs 虚拟化容器
可以看到,“容器虚拟化”和“虚拟化容器”这两种方案的主要区别在于主要运行环境,具体架构对比见下图。根据 Gartner《容器技术成熟度曲线报告》,容器虚拟化方案仍处于技术起步期,距离成熟的市场应用还有很长(5-10 年)的时间,目前比较适合具备专业技术能力的用户在测试环境使用。而虚拟化容器方案不仅基于更成熟的虚拟化/超融合技术,而且具备更高的基础设施融合度、更广泛的高级虚拟化特性和设备支持,以及更稳定可靠的存储能力,因此更适合用户在现阶段采用,以支持生产环境中的虚拟化容器融合部署。

容器云(Cloud Container)
为了帮助用户更方便地获得容器优势、简化 IaaS 层的各种运维管理负担,一些厂商可以以云化交付的形式提供容器平台(一般包含 IaaS 层和 PaaS 层能力),用户可以基于符合兼容性的自有平台和设备部署容器云,在其上直接运行容器化应用,无需管理和运维容器基础架构层面的软硬件。常见的容器云包括 AWS、灵雀云等。
容器 vs 容器云 vs 容器管理
如前所述,容器是一种操作系统级别的虚拟化技术,为云原生/云计算提供敏捷能力,但容器本身可以在本地进行部署,并不一定以云的方式进行交付。“容器云”则是一个云化平台,以云的方式交付容器服务。一些容器云(PaaS)厂商可提供 IaaS 层容器管理的能力,用户也可使用 IaaS 厂商的容器管理服务/软件,以获取相对更完善的容器管理能力。
裸金属(Bare Metal)
裸金属是英文“Bare Metal”的直接翻译,有两种常见用法:
- 裸金属服务器/裸金属云:云化交付的物理服务器,仅提供给单一用户/租户使用。裸金属服务器通常允许用户自行配置和管理操作系统、虚拟化层、中间件、应用层等,厂商负责提供、管理和运维裸金属物理服务器(含计算、存储和网络)。
- 裸金属(Kubernetes 集群):在使用 Kubernetes 时,不少用户会将“裸金属”和“物理机”混淆使用,以“裸金属 Kubernetes 集群”表达采用物理机部署 Kubernetes 集群的意思。此时,“裸金属”仅表示以物理机作为运行环境,并不一定具备公有云属性。
裸金属 vs 物理机 vs 虚拟化
使用 Kubernetes 时,用户既可以将 Kubernetes 部署在物理机上,也可以部署在虚拟机上,两者的架构区别如下图所示。“裸金属 Kubernetes 集群”表达的含义与“物理机 Kubernetes 集群”相同。虚拟化和物理机环境运行 Kubernetes 在性能、稳定性、扩展能力、安全性、成本等方面都各有千秋,一些用户也可能会采用混合部署的方式,同时以物理机和虚拟机部署 Kubernetes 集群。欲深入了解两种部署环境的差异和混合部署的方案,请阅读:
- 虚拟化 vs. 裸金属:K8s 部署环境架构与特性对比
- 适合在虚拟化环境中部署 Kubernetes 的三个场景
为了帮助用户更简单、灵活、便捷地使用容器带来的各种优势,专业的现代化 IT 基础设施产品与解决方案提供商——志凌海纳 SmartX——推出了生产级容器管理与服务产品 SMTX Kubernetes 服务和虚拟化容器融合基础设施方案,帮助用户基于一套超融合基础设施实现虚拟机集群、虚拟机 Kubernetes 集群与物理机 Kubernetes 集群的统一管理,满足多种应用系统对于基础设施资源的不同需求。
您还可点击下方链接,下载电子书《IT 基础架构团队的 Kubernetes 管理:从入门到评估》,了解更多 Kubernetes 管理与运维的干货知识!
《IT 基础架构团队的 Kubernetes 管理:从入门到评估》https://mobile.smartx.com/p/6c2769
相关文章:

概念解读|K8s/容器云/裸金属/云原生...这些都有什么区别?
随着容器技术的日渐成熟,不少企业用户都对应用系统开展了容器化改造。而在容器基础架构层面,很多运维人员都更熟悉虚拟化环境,对“容器圈”的各种概念容易混淆:容器就是 Kubernetes 吗?容器云又是什么?容器…...
初识Arkts
创建对象: 类: 类声明引入一个新类型,并定义其字段、方法和构造函数。 定义类后,可以使用关键字new创建实例 可以使用对象字面量创建实例 在以下示例中,定义了Person类,该类具有字段name和surname、构造函…...

基本的SELECT语句
1.SQL概述 SQL(Structured Query Language)是一种用于管理和操作关系数据库的编程语言。它是一种标准化的语言,用于执行各种数据库操作,包括创建、查询、插入、更新和删除数据等。 SQL语言具有简单、易学、高效的特点,…...

51c自动驾驶~合集30
我自己的原文哦~ https://blog.51cto.com/whaosoft/12086789 #跨越微小陷阱,行动更加稳健 目前四足机器人的全球市场上,市场份额最大的是哪个国家的企业?A.美国 B.中国 C.其他 波士顿动力四足机器人 云深处 绝影X30 四足机器人 …...
Python Tutor网站调试利器
概述 本文主要是推荐一个网站:Python Tutor. 网站首页写道: Online Compiler, Visual Debugger, and AI Tutor for Python, Java, C, C++, and JavaScript Python Tutor helps you do programming homework assignments in Python, Java, C, C++, and JavaScript. It contai…...
h5小游戏实现获取本机图片
h5小游戏实现获取本机图片 本文使用cocos引擎 1.1 需求 用户通过文件选择框选择图片。将图片内容转换为Cocos Creator的纹理 (cc.Texture2D),将纹理设置到 cc.SpriteFrame 并显示到节点中。 1.2 实现步骤 创建文件输入框用于获取文件 let input document.createElement(&quo…...
前端 javascript a++和++a的区别
前端 javascript a和a的区别 a 是先执行表达式后再自增,执行表达式时使用的是a的原值。a是先自增再执行表达示,执行表达式时使用的是自增后的a。 var a0 console.log(a); // 输出0 console.log(a); // 输出1var a0 console.log(a); // 输出1 console.l…...

OceanBase V4.x应用实践:如何排查表被锁问题
DBA在日常工作中常常会面临以下两种常见情况: 业务人员会提出问题:“表被锁了,导致业务受阻,请帮忙解决。” 业务人员还会反馈:“某个程序通常几秒内就能执行完毕,但现在却运行了好几分钟,不清楚…...

ctfshow-web入门-SSRF(web351-web360)
目录 1、web351 2、web352 3、web353 4、web354 5、web355 6、web356 7、web357 8、web358 9、web359 10、web360 1、web351 看到 curl_exec 函数,很典型的 SSRF 尝试使用 file 协议读文件: urlfile:///etc/passwd 成功读取到 /etc/passwd 同…...
【日常记录-Git】如何为post-checkout脚本传递参数
1. 简介 在Git中,post-checkout 钩子是一个在git checkout 或git switch命令成功执行后自动调用的脚本。该脚本不接受任何来自Git命令的直接参数,因为Git设计该钩子是为了在特定的版本控制操作后执行一些预定义的任务,而不是作为一个通用的脚…...

《机器人控制器设计与编程》考试试卷**********大学2024~2025学年第(1)学期
消除误解,课程资料逐步公开。 复习资料: Arduino-ESP32机器人控制器设计练习题汇总_arduino编程语言 题-CSDN博客 试卷样卷: 开卷考试,时间: 2024年11月16日 001 002 003 004 005 ……………………装………………………...

后台管理系统(开箱即用)
很久没有更新博客了,给大家带上一波福利吧,大佬勿扰 现在市面上流行的后台管理模板很多,若依,芋道等,可是这些框架对我们来说可能会有点重,所以我自己从0到1写了一个后台管理模板,你们使用时候可扩展性也会更高 项目主要功能: 成员管理,部门管理&#…...

5G CPE与4G CPE的主要区别有哪些
什么是CPE? CPE是Customer Premise Equipment(客户前置设备)的缩写,也可称为Customer-side Equipment、End-user Equipment或On-premises Equipment。CPE通常指的是位于用户或客户处的网络设备或终端设备,用于连接用户…...
量化交易系统开发-实时行情自动化交易-4.1.3.A股平均趋向指数(ADX)实现
19年创业做过一年的量化交易但没有成功,作为交易系统的开发人员积累了一些经验,最近想重新研究交易系统,一边整理一边写出来一些思考供大家参考,也希望跟做量化的朋友有更多的交流和合作。 接下来继续说说A股平均趋向指数实现。 …...
tcp的网络惊群问题
1. SO_REUSEPORT 可以解决epoll的惊群问题 但是,现在的 TCP Server,一般都是 多进程多路IO复用(epoll) 的并发模型,比如我们常用的 nginx 。如果使用 epoll 去监听 accept socket fd 的读事件,当有新连接建立时,所有进…...

云原生之运维监控实践-使用Prometheus与Grafana实现对Nginx和Nacos服务的监测
背景 如果你要为应用程序构建规范或用户故事,那么务必先把应用程序每个组件的监控指标考虑进来,千万不要等到项目结束或部署之前再做这件事情。——《Prometheus监控实战》 去年写了一篇在Docker环境下部署若依微服务ruoyi-cloud项目的文章,当…...

软考教材重点内容 信息安全工程师 第 4 章 网络安全体系与网络安全模型
4,1 网络安全体系的主要特征: (1)整体性。网络安全体系从全局、长远的角度实现安全保障,网络安全单元按照一定的规则,相互依赖、相互约束、相互作用而形成人机物一体化的网络安全保护方式。 (2)协同性。网络安全体系依赖于多种安全机制,通过各…...

机器学习——期末复习 重点题归纳
第一题 问题描述 现有如下数据样本: 编号色泽敲声甜度好瓜1乌黑浊响高是2浅白沉闷低否3青绿清脆中是4浅白浊响低否 (1)根据上表,给出属于对应假设空间的3个不同假设。若某种算法的归纳偏好为“适应情形尽可能少”,…...
MYSQL——数据更新
一、插入数据 1.插入完整的数据记录 在MYSQL中,使用SQL语句INSERT插入一条完整的记录,语法如下: INSERT INTO 表名 [(字段名1[,...字段名n])] VALUES (值1[...,值n]); 表名——用于指定要插入的数据的表名 字段名——用于指定需要插入数据…...
Vite 基础理解及应用
文章目录 概要Vite基础知识点1. 快速启动和热更新热更新原理 2. 基于ES模块的构建3. 对不同前端框架的支持 vite.config.js配置实例1. 基本结构2. 服务器相关配置3. 输入输出路径配置4. 打包优化配置 项目构建一、项目初始化二、项目结构理解三、CSS处理四、静态资源处理五、构…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...