为什么k8s不支持docker-kubernetes

 为什么Kubernetes不再支持Docker?

在Kubernetes 1.20版本之后,Kubernetes宣布逐步停止对Docker作为容器运行时的支持。这一改变在容器管理领域引起了广泛关注。许多人不禁疑惑:Kubernetes与Docker一向密切合作,为何会做出这样的决定?本文将深入解析Kubernetes与Docker之间的关系变化,探讨这一转变背后的原因,以及对用户和开发者的影响。

1. Kubernetes和Docker的关系:从合作到转变

Kubernetes最初在设计时,是为了协调管理Docker容器,提供了自动化的容器调度和集群管理能力。然而,Docker本身不仅仅是一个容器运行时,它还包括开发工具和镜像管理功能。Kubernetes使用Docker作为运行时,需要依赖一个称为Dockershim的适配层,以实现与Docker的通信。Dockershim是一个中间层,负责将Kubernetes的指令转换为Docker能够理解的格式,并通过Docker来启动和管理容器。

然而,Dockershim带来的架构复杂性和维护成本逐渐成为Kubernetes发展的负担。Kubernetes社区长期以来都计划去除这个额外的中间层,并转向使用更符合Kubernetes标准的运行时接口(Container Runtime Interface, CRI)。

2. 容器运行时接口(CRI):简化运行时管理

为了让Kubernetes支持多种容器运行时,社区在Kubernetes 1.5版本引入了CRI标准。CRI是一组标准化接口,旨在让Kubernetes的核心组件Kubelet能够与任何支持CRI的容器运行时进行通信。通过CRI,Kubernetes可以与如containerdCRI-O这样的轻量级运行时直接集成,避免了像Dockershim这样的额外适配层。

Docker并未原生支持CRI,因此,Kubernetes团队需要通过维护Dockershim来使Docker运行时与Kubernetes兼容。然而,随着containerd等CRI兼容运行时逐渐成熟且稳定,Kubernetes社区决定不再继续维护Dockershim,这样可以简化Kubernetes的代码库,提升系统的效率和稳定性。

3. Docker被弃用的技术原因

  • 架构简化与性能优化:Docker是一个全面的容器管理工具,不仅包括容器运行时,还包括开发、构建、镜像管理等功能。然而,对于Kubernetes而言,只需要一个负责运行容器的基础组件,因此Docker显得过于复杂。通过直接使用containerd等轻量化的CRI兼容运行时,Kubernetes可以减少系统层级间的额外消耗和复杂性。

  • 减少维护负担:维护Dockershim需要额外的人力和代码管理。随着社区对CRI标准的完善,使用专门为Kubernetes设计的运行时(如containerd和CRI-O)可以减少维护复杂性,提高系统的兼容性和稳定性。

4. 这对用户的影响:Docker镜像依然可用

值得注意的是,Kubernetes停止支持Docker作为运行时,并不意味着完全放弃Docker。Docker依然在容器开发和镜像构建中发挥着重要作用,用户仍然可以使用Docker镜像来构建应用程序,并将这些镜像部署在Kubernetes集群上。Kubernetes只是建议在生产环境中使用更轻量化的容器运行时。

对于已经在使用Docker作为运行时的Kubernetes用户,Kubernetes在1.20版本发布后提供了过渡期,给开发者足够的时间迁移到containerd或CRI-O等其他运行时。在1.22版本之后,Dockershim被完全移除,用户必须确保使用的运行时符合CRI标准。

5. 未来的发展趋势:从Docker到容器生态的多样化

Kubernetes逐步脱离对Docker的依赖,标志着容器生态系统的成熟与多样化。通过CRI接口,Kubernetes为不同类型的运行时提供了统一的标准,使得用户可以根据自己的需求选择最合适的运行时,如:

  • containerd:由Docker公司开发,但专注于容器运行时部分,与Kubernetes深度集成,成为大多数Kubernetes发行版的默认选择。
  • CRI-O:由Red Hat开发的轻量级容器运行时,专为Kubernetes设计,支持OCI(开放容器标准)。

这些替代方案在提供类似Docker的基础功能的同时,也更加符合Kubernetes对容器管理的需求。

结论:Docker在Kubernetes中的角色转变

Kubernetes不再支持Docker作为容器运行时,是为了简化架构、提升性能,并适应现代化容器管理需求的结果。这一变化并不意味着Docker将退出容器生态,而是Docker从直接的运行时角色转向了容器开发和构建工具的角色。用户可以继续使用Docker构建应用程序镜像,同时在Kubernetes中使用更加轻量化的运行时来管理容器集群。对于开发者和运维团队而言,理解这一转变,选择合适的运行时,是确保系统稳定和高效运行的关键。

这一转变标志着容器技术的进一步成熟,也为Kubernetes用户提供了更丰富的选择。随着containerd、CRI-O等新兴容器运行时的崛起,Kubernetes的生态将继续向着更灵活、更高效的方向发展。

更多了解:

Kubernetes与Docker对比如何选择 

为何很多公司不用k8s-kubernetes详解 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

骨传导耳机哪个品牌好?2024年五大热门精选骨传导耳机推荐

在当今快节奏的生活中,人们对于个人音频设备的需求不仅限于优质的音质体验,还越来越注重健康与舒适。骨传导耳机作为一种新兴的技术产品,以其独特的听觉传递方式——通过颞骨而非耳道传递声音——赢得了众多用户的青睐。这种技术不仅可以提供…

Webserver(1)Linux开发环境搭建

目录 配置软件虚拟机中安装ubuntu安装ubuntu18的操作系统 安装VM tools安装XshellVscode远程连接到虚拟机 配置软件 VMwareVScodeg安装ubuntu 18.04.iso 或者镜像版本 XShellXFTP 虚拟机中安装ubuntu 安装ubuntu18的操作系统 开启虚拟机 选择中文简体 安装VM tools 打开v…

炸了!改进Transformer!Transformer-BiGRU多变量回归预测(Matlab)

炸了!改进Transformer!Transformer-BiGRU多变量回归预测(Matlab) 目录 炸了!改进Transformer!Transformer-BiGRU多变量回归预测(Matlab)分类效果基本介绍程序设计参考资料 分类效果 …

python离线安装依赖

以pymsql依赖为例操作如下: Python Package Index(PyPI)的官方网址是: PyPI The Python Package Index 在这个网站上,你可以搜索、浏览和下载Python包。 tar -xvzf pymysql2-1.3.3.tar.gz cd pymysql2-1.3.3 python setup.p…

基于SSM机场网上订票系统的设计

管理员账户功能包括:系统首页,个人中心,用户管理,机票信息管理,订单信息管理,机场广告管理,系统管理 前台账号功能包括:系统首页,个人中心,机票信息&#xf…

CRMEB标准版Mysql修改sql_mode

数据库配置 1.宝塔控制面板-软件商店-MySql-设置 2.点击配置修改,查找sql-mode或sql_mode (可使用CtrlF快捷查找) 3.复制 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 然后替换粘贴,保存 注:MySQL8.0版本的 第三步用…

CRM在企业协同中发挥了哪些作用?

在当今快速变化的商业环境中,企业竞争力的核心已逐渐从单一的产品或服务优势,转向以客户为中心的综合能力构建。客户关系管理(CRM)系统作为这一转型的关键驱动力,正以前所未有的力度打破企业内部部门间的传统壁垒&…

MusePose模型部署指南

一、模型介绍 MusePose是一个基于扩散和姿势引导的虚拟人视频生成框架。 主要贡献可以概括如下: 发布的模型能够根据给定的姿势序列,生成参考图中人物的舞蹈视频,生成的结果质量超越了同一主题中几乎所有当前开源的模型。发布该 pose alig…

Python CGI编程-get、post-复选框、单选框、文本框、下拉列表

GET方法:将网址中的两个参数读取出来显示到浏览器中 url示例:表单示例:服务器脚本hello.py文件是放在/Library/WebServer/CGI-Executables,hello.py同样也需要通过chmod修改权限到755. 放在/Library/WebServer/Documents中的是get…

免费开源AI助手,颠覆你的数字生活体验

Apt Full作为一款开源且完全免费的软件,除了强大的自然语言处理能力,Apt Full还能够对图像和视频进行一系列复杂的AI增强处理,只需简单几步即可实现专业级的效果。 在图像处理方面,Apt Full提供了一套全面的AI工具,包…

关于写查询接口的一些理解

上篇文章我们讲了查看设备详细信息的接口。这篇文章我们来讲讲一般的查询接口怎么写。我们就以最简单的查询为例子,来讲讲怎么写查询接口。 这是写IT设备查询接口的要求: 首先要知道的是,你写任何接口都是针对某张表来进行操作的。就像这个接…

HCIP--1

同一区域内的OSPF路由器拥有一致的 LSDB, 在区域内,OSPF 采用 SPF算法计算路由一个区域太多路由器,硬件资源跟不上,所以多划分区域 OSPF 路由计算原理 1. 区域内路由计算 LSA 在OSPF中,每个路由器生成 LSA,用于告诉…

Bytebase 3.0.0 - AI 助手全面升级

🚀 新功能 SQL 编辑器里的 AI 助手:支持将自然语言转换成 SQL 语句,解释 SQL 代码,还能帮助发现潜在问题。 支持 SQL Server DML 语句一键回滚。支持 MariaDB 的在线大表变更。新的 SQL 审核规则: 要求为 MySQL 设置 …

我谈Sobel算子与高斯一阶微分的关系

现在算力提升了,最常用的一阶差分边缘检测算子已经不是Sobel算子了,而是高斯一阶微分。 高斯一阶微分 顾名思义,高斯函数的一阶导数。 Derivative of Gaussian 1D 一维直接扩展到二维。 禹晶、肖创柏、廖庆敏《数字图像处理(面…

vue-router3基本使用

vuex基本使用 vue2 对应的 vuex、vue-router 都为3. 项目创建与框架安装如下 vue create hellorouter3 npm install vue-router3 npm i vuex3 npm install npm run serve 处理新建About组件报错 根路径下创建.eslintrc.js文件,其内容如下: module.ex…

程序员:数字时代的先锋

随着科技的不断进步,程序员这一职业群体逐渐成为社会中不可或缺的一部分。他们以智慧和汗水为世界带来更多的便捷与创新。今天,我们将庆祝1024程序员节,这是一个向全球程序员们表达敬意和感激的节日。让我们一同走进程序员的内心世界&#xf…

Unity 实现音频(mp3)可控制进度条

目录 前言 一、拼UI 二、上代码 前言 效果如图:(因为是GIF格式,录不上音频) 一、拼UI 1.新建空物体添加AudioSource,给AudioSource添加音频文件,取消勾选PlayOnAwake,勾选上Loop 2.创建Slid…

VMware虚拟机中centos磁盘扩容(非VG分区挂载方案)

目录 1、虚拟机磁盘扩容2、查看磁盘分区3、编辑磁盘分区4、调整文件系统大小 搭建dify的时候发现虚拟机的磁盘空间不够了;搜索了很多教程都是用的vg分区去扩展的;没有part类型直接扩容的教程;然后自己摸索了下;特此记录分享 1、虚…

docker-compose-lnmp-wordpress

使用 docker-compose 在 CentOS 7 上编写并部署 LNMP (Linux, Nginx, MySQL, PHP) 环境的 YAML 文章目录 部署步骤:1. 安装 Docker 和 Docker Compose1.1安装 Docker:1.2安装 Docker Compose: 2.创建目录结构3.编写docker-compose.yml4.ngin…

K8S调度不平衡问题分析过程和解决方案

不平衡问题排查 问题描述: 1、业务部署大量pod(据反馈,基本为任务型进程)过程中,k8s node内存使用率表现不均衡,范围从80%到百分之几; 2、单个node内存使用率超过95%,仍未发生pod驱逐,存在node…