Mirantis及时现身,接过Kubernetes dockershim支持大旗

2024-01-25 17:40

本文主要是介绍Mirantis及时现身,接过Kubernetes dockershim支持大旗,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于dockershim即将灭亡的传言无疑存在严重夸大。如果一直有关注Kubernetes生态系统,很多朋友一时之间可能确实被Kubernetes 1.20版本的发布公告弄得有点不知所措。从公告内容来看,自1.20版本开始dockershim将被全面弃用。但请不要恐慌,调整呼吸,一切都会好起来。

更重要的是,Mirantis现已同意与Docker开展合作,在Kubernetes之外独立维护shim代码并将其作为Docker Engine API的统一CRI接口。对于Mirantis客户而言,这意味着Docker Engine的商业支持版本Mirantis Container Runtime(MCR)也将提供CRI兼容能力。我们将从https://github.com/dims/cri-dockerd上的Dims原型方案起步,并逐步将其转化为开源项目https://github.com/Mirantis/cri-dockerd。换句话说,你可以像之前一样继续基于Docker Engine构建Kubernetes,唯一的区别就是dockershim由内置方案变成了外部方案。我们将共同努力,保证它在保持原有功能的同时,顺利通过各类一致性测试并提供与此前内置版本相同的使用体验。Mirantis将在Mirantis Kubernetes Engine中使用dockershim,Docker方面也将在Docker Desktop中继续提供dockershim。

从头说起……

用过Kubernetes的朋友都清楚,它的最大作用就是编排各类容器。对不少用户来说,容器已经与Docker完全统一了起来。但这种说法并不准确,Docker本身只是彻底改变了容器技术并将其推向了通用舞台,因此Docker Engine也成为Kubernetes所支持的第一种(也是最初唯一一种)容器运行时。

但Kubernetes社区并不打算长期保持这样的状态。

从长远来看,社区希望能够使用多种不同类型的容器,因此参与者们创建了容器运行时接口(CRI),也就是容器引擎与Kubernetes间进行通信的标准方式。如果容器引擎与CRI相兼容,即可轻松在Kubernetes当中运行。

第一款兼容CRI的容器引擎是containerd,而它来自……好吧,还是来自Docker。很明显,Docker本身不仅仅是一种容器运行时,而且提供可供其他用户消费的种种部件,甚至包括用户界面。因此,Docker提取出与容器实际相关的部分,并将其调整为第一种与CRI兼容的运行时,而后把它捐赠给了云原生计算基金会(CNCF)。由此衍生出的cri-containerd组件具有运行时中立特性,而且能够支持多种Linux与Windows操作系统。

但这还留下最后一个问题——Docker本身仍然不兼容CRI。

Dockershim是什么?

正如Kubernetes最初对Docker Engine提供内置支持一样,其中同样包含对各类存储卷解决方案、网络解决方案甚至是云服务商的内置支持。但要不断维护这些支持功能实在是太过麻烦,因此社区决定将所有第三方解决方案从核心中剥离出来并创建相关接口,例如:

  • 容器运行时接口(CRI)

  • 容器网络接口(CNI)

  • 容器存储接口(CSI)

其中的基本思路在于,只要兼容这些接口,那么任何供应商都可以创建出能自动与Kubernetes相对接的产品。

当然,这绝不是说不兼容的组件就没办法与Kubernetes配合使用;Kubernetes可以使用正确的组件完成各类协同。换言之,不兼容的组件仅仅需要加上个“shim(意为垫片)”,由其在组件与相应的Kubernetes接口之间完成转换,即可轻松解决问题。例如,dockershim会接收CRI命令并将其转换为Docker Engine能够理解的内容,反之亦然。但在第三方组件被从Kubernetes核心内剥离的背景之下,dockershim自身也需要逐步退出。

虽然听起来好像事情不小,但实际上没那么严重。大家使用docker build构建起的CRI兼容型镜像,未来仍然可以与Kubernetes正常配套使用。

Kubernetes放弃对dockershim的支持,会带来哪些影响?

对大多数人来说,弃用dockershim其实半点影响也没有。这是因为大部分用户既意识不到dockershim的存在,实际上使用的也不是Docker本体;相反,他们使用的是与CRI相兼容的containerd。

当然,也有一部分用户(包括Mirantis的客户)在运行依赖于dockershim的工作负载,借此与Kubernetes实现无缝协作。

考虑到dockershim仍然是不少企业难以割舍的重要组件,Mirantis与Docker达成协议,继续支持并开发dockershim。只不过这一次,dockershim将以独立开源组件的身份存在。

那么,这到底意味着什么?

简单来讲,如果你直接使用containerd,则不必抱有任何担心;因为containerd能够与CRI相兼容。如果你身为Mirantis的客户,同样不用担心;因为Mirantis容器运行时将包含对dockershim的支持,确保其与CRI相兼容。

但如果你使用的是开源Docker Engine,则dockershim项目将以开源组件的形式提供,您可以继续在Kubernetes上正常使用;唯一的区别就是需要对配置做出少量修改,具体请参见我们后续发布的说明文档。

所以,请大家不必惊异。Docker还在,dockershim还在,一切如常。

原文链接:https://www.mirantis.com/blog/mirantis-to-take-over-support-of-kubernetes-dockershim-2/

Kubernetes实战培训

Kubernetes实战培训将于2020年12月25日在深圳开课,3天时间带你系统掌握Kubernetes,学习效果不好可以继续学习。本次培训包括:云原生介绍、微服务;Docker基础、Docker工作原理、镜像、网络、存储、数据卷、安全;Kubernetes架构、核心组件、常用对象、网络、存储、认证、服务发现、调度和服务质量保证、日志、监控、告警、Helm、实践案例等,点击下方图片或者阅读原文链接查看详情。

这篇关于Mirantis及时现身,接过Kubernetes dockershim支持大旗的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/644068

相关文章

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略 1. 特权模式限制2. 宿主机资源隔离3. 用户和组管理4. 权限提升控制5. SELinux配置 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的PodSecurityPolicy(PSP)是一个关键的安全特性,它在Pod创建之前实施安全策略,确保P

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

什么是Kubernetes PodSecurityPolicy?

@TOC 💖The Begin💖点点关注,收藏不迷路💖 1、什么是PodSecurityPolicy? PodSecurityPolicy(PSP)是Kubernetes中的一个安全特性,用于在Pod创建前进行安全策略检查,限制Pod的资源使用、运行权限等,提升集群安全性。 2、为什么需要它? 默认情况下,Kubernetes允许用户自由创建Pod,可能带来安全风险。

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

kubernetes集群部署Zabbix监控平台

一、zabbix介绍 1.zabbix简介 Zabbix是一个基于Web界面的分布式系统监控的企业级开源软件。可以监视各种系统与设备的参数,保障服务器及设备的安全运营。 2.zabbix特点 (1)安装与配置简单。 (2)可视化web管理界面。 (3)免费开源。 (4)支持中文。 (5)自动发现。 (6)分布式监控。 (7)实时绘图。 3.zabbix的主要功能

【Kubernetes】常见面试题汇总(三)

目录 9.简述 Kubernetes 的缺点或当前的不足之处? 10.简述 Kubernetes 相关基础概念? 9.简述 Kubernetes 的缺点或当前的不足之处? Kubernetes 当前存在的缺点(不足)如下: ① 安装过程和配置相对困难复杂; ② 管理服务相对繁琐; ③ 运行和编译需要很多时间; ④ 它比其他替代品更昂贵; ⑤ 对于简单的应用程序来说,可能不

Golang支持平滑升级的HTTP服务

前段时间用Golang在做一个HTTP的接口,因编译型语言的特性,修改了代码需要重新编译可执行文件,关闭正在运行的老程序,并启动新程序。对于访问量较大的面向用户的产品,关闭、重启的过程中势必会出现无法访问的情况,从而影响用户体验。 使用Golang的系统包开发HTTP服务,是无法支持平滑升级(优雅重启)的,本文将探讨如何解决该问题。 一、平滑升级(优雅重启)的一般思路 一般情况下,要实现平滑

sqlite不支持中文排序,采用java排序

方式一 不支持含有重复字段进行排序 /*** sqlite不支持中文排序,改用java排序* 根据指定的对象属性字段,排序对象集合,顺序* @param list* @param field* @return*/public static List sortListByField(List<?> list,String field){List temp = new ArrayList(

一款支持同一个屏幕界面同时播放多个视频的视频播放软件

GridPlayer 是一款基于 VLC 的免费开源跨平台多视频同步播放工具,支持在一块屏幕上同时播放多个视频。其主要功能包括: 多视频播放:用户可以在一个窗口中同时播放任意数量的视频,数量仅受硬件性能限制。支持多种格式和流媒体:GridPlayer 支持所有由 VLC 支持的视频格式以及流媒体 URL(如 m3u8 链接)。自定义网格布局:用户可以配置播放器的网格布局,以适应不同的观看需求。硬