概念解读|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 管理:从入门到评估》icon-default.png?t=O83Ahttps://mobile.smartx.com/p/6c2769

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《机器人控制器设计与编程》考试试卷**********大学2024~2025学年第(1)学期

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

本地音乐服务器(三)

6. 删除音乐模块设计 6.1 删除单个音乐 1. 请求响应设计 2. 开始实现 首先在musicmapper新增操作 Music findMusicById(int id);int deleteMusicById(int musicId); 其次新增相对应的.xml代码&#xff1a; <select id"findMusicById" resultType"com.exa…

如何在项目中用elementui实现分页器功能

1.在结构部分复制官网代码&#xff1a; <template> 标签: 这是 Vue 模板的根标签&#xff0c;包含所有的 HTML 元素和 Vue 组件。 <div> 标签: 这是一个普通的 HTML 元素&#xff0c;包裹了 el-pagination 组件。它没有特别的意义&#xff0c;只是为了确保 el-pagi…

VB.Net笔记-更新ing

1.1 设置默认VS的开发环境为VB.NET&#xff08;2024/11/18&#xff09; 1.2 新建一个“Hello&#xff0c;world”的窗体&#xff08;2024/11/18&#xff09; 1.3 计算圆面积的小程序&#xff08;2024/11/18&#xff09; 显示/隐式 声明 &#xff08;2024/11/18&#xff0…

每日一练:【优先算法】双指针之移动零(easy)

双指针概念介绍 常见的双指针有两种形式&#xff0c;一种是对撞指针&#xff0c;一种是左右指针。 对撞指针&#xff1a;一般用于顺序结构中&#xff0c;也称左右指针。 • 对撞指针从两端向中间移动。一个指针从最左端开始&#xff0c;另一个从最右端开始&#xff0c;然后逐渐…

树状数组 Color the ball hdu 1556 线段树 洛谷p3372

目录 前言 树状数组 lowbit函数 直观表述 代码 运行结果 树状数组构建代码 树状数组的应用 单点修改和&#xff08;单点&#xff09;区间查询 结合差分数组区间修改 ,单点查询 差分数组 Color the ball hdu 1556 问题描述 问题分析 代码 线段树 洛谷p3372 问题描述 问题…

学习笔记022——Ubuntu 安装 MySQL8.0版本踩坑记录

目录 1、查看可安装 MySQL 版本 2、Ubuntu安装 MySQL8.0 3、MySQL8.0 区分大小写问题 4、MySQL8.0 设置sql_mode 5、MySQL8.0 改端口33060&#xff08;个人遇到问题&#xff09; 1、查看可安装 MySQL 版本 ## 列出可用的MySQL版本&#xff08;列出所有可用的MySQL版本以…

【数据结构】树——链式存储二叉树的基础

写在前面 书接上文&#xff1a;【数据结构】树——顺序存储二叉树 本篇笔记主要讲解链式存储二叉树的主要思想、如何访问每个结点、结点之间的关联、如何递归查找每个结点&#xff0c;为后续更高级的树形结构打下基础。不了解树的小伙伴可以查看上文 文章目录 写在前面 一、链…

qt之QFTP对文件夹(含嵌套文件夹和文件)、文件删除下载功能

一、前言 主要功能如下&#xff1a; 1.实现文件夹的下载和删除&#xff0c;网上很多资料都是单独对某个路径的文件操作的&#xff0c;并不能对文件夹操作 2.实现目标机中含中文名称自动转码&#xff0c;有些系统编码方式不同&#xff0c;下载出来的文件会乱码 3.实现ftp功能…

集群聊天服务器(7)数据模块

目录 Mysql数据库代码封装头文件与源文件 Mysql数据库代码封装 业务层代码不要直接写数据库&#xff0c;因为业务层和数据层的代码逻辑也想完全区分开。万一不想存储mysql&#xff0c;想存redis的话&#xff0c;就要改动大量业务代码。解耦合就是改起来很方便。 首先需要安装m…

手机远程控制电脑,让办公更快捷

在数字化办公的浪潮下&#xff0c;远程控制软件已成为连接工作与生活的桥梁。它使得用户能够通过一台设备&#xff08;主控端&#xff09;来操作另一台设备&#xff08;被控端&#xff09;&#xff0c;无论它们是否位于同一局域网内。这种软件广泛应用于远程办公、手机远程控制…

面向FWA市场!移远通信高性能5G-A模组RG650V-NA通过北美两大重要运营商认证

近日&#xff0c;全球领先的物联网整体解决方案供应商移远通信宣布&#xff0c;其旗下符合3GPP R17标准的新一代5G-A模组RG650V-NA成功通过了北美两家重要运营商认证。凭借高速度、大容量、低延迟、高可靠等优势&#xff0c;该模组可满足CPE、家庭/企业网关、移动热点、高清视频…

72项!湖北省2024年度第二批省级科技计划项目拟立项项目公示!

本期精选 SCI&EI ●IEEE 1区TOP 计算机类&#xff08;含CCF&#xff09;&#xff1b; ●EI快刊&#xff1a;最快1周录用&#xff01; 知网(CNKI)、谷歌学术期刊 ●7天录用-检索&#xff08;100%录用&#xff09;&#xff0c;1周上线&#xff1b; 免费稿件评估 免费匹配…

LeetCode 热题 100 回顾

目录 一、哈希部分 1.两数之和 &#xff08;简单&#xff09; 2.字母异位词分组 &#xff08;中等&#xff09; 3.最长连续序列 &#xff08;中等&#xff09; 二、双指针部分 4.移动零 &#xff08;简单&#xff09; 5.盛最多水的容器 &#xff08;中等&#xff09; 6…

Chrome 浏览器 131 版本开发者工具(DevTools)更新内容

Chrome 浏览器 131 版本开发者工具&#xff08;DevTools&#xff09;更新内容 一、使用 Gemini 调试 CSS Chrome DevTools 现在推出了一个新的实验性 AI 辅助面板&#xff0c;可以与 Gemini 聊天并获得帮助来调试 CSS。 在 Elements 面板中&#xff0c;右键点击一个元素并选…

网络编程-002-UDP通信

1.UDP通信的简单介绍 1.1不需要通信握手,无需维持连接,网络带宽需求较小,而实时性要求高 1.2 包大小有限制,不发大于路径MTU的数据包 1.3容易丢包 1.4 可以实现一对多,多对多 2.客户端与服务端=发送端与接收端 代码框架 收数据方一般都是客户端/接收端 3.头文件 #i…

websocket身份验证

websocket身份验证 前言 上一集我们就完成了websocket初始化的任务&#xff0c;那么我们完成这个内容之后就应该完成一个任务&#xff0c;当客户端与服务端连接成功之后&#xff0c;客户端应该主动发起一个身份认证的消息。 身份认证proto 我们看一眼proto文件的内容。 我…

初识C++(1)

C是在C语言的基础之上&#xff0c;容纳进去了面向对象编程思想&#xff0c;并增加了许多有用的库以及编程范式等。 在C语言中&#xff0c;变量、函数和类的名称存在于全局作用域中&#xff0c;因此可能会发生许多冲突。比如&#xff1a; #include<stdio.h> #include<…

Axure9生成的阅览页面如何自动展开左侧页面导航?

问题 Axure9生成的阅览页面&#xff0c;默认情况是自动折叠的&#xff0c;如何自动展开左侧页面导航&#xff1f; 解决 Axure工具&#xff1a;发布 > 预览选项 > 播放器 > 打开页面列表

LeetCode:700. 二叉搜索树中的搜索

目录 题目描述: 代码: 题目描述: 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在&#xff0c;则返回 null 。 示例 1: 输入&#xff1a;root [4,2,7,1,3…