Kubernetes提供了另一种容器运行时

简介:

传统上,Kubernetes容器运行时是绑定到Docker和rkt的。但是在过去数月中,这一情况发生了变化。Kubernetes发布了自己的容器运行时接口(CRI,Container Runtime Interface)API,同时正在完成一个称为CRI-O的实现,力图构建Kubernetes和OCI兼容运行时之间的桥梁。这为Kubernetes以标准方式使用任何OCI兼容容器运行时铺平了道路。
Kubernetes依赖于底层的容器运行时实现生命周期控制,例如Pull、创建、删除等操作。运行时实现为实际的容器,从操作系统层面管理命名空间隔离和资源分配。早期,Docker和rkt是通过非公开的API紧密集成到Kubernetes源代码中的。要添加其它的运行时需要修补源代码,这是非常繁琐的,并且稳定性没有保证。为改进这一问题,在Kubernetes 1.5中以公开发表测试特性的形式引入了CRI。CRI提供了将容器运行时插入Kubernetes系统的通用接口,使用户可以运行kubernetes去编排并扩展他们的非Docker和非rkt架构。运行时也可以是runv这样的基于容器的Hypervisor。

开放容器联盟(OCI,Open Container Initiative)是一个为标准化容器格式和运行时而组建的工业界联盟,它发布了容器运行时标准“runtime-spec”。当前该标准的实现包括runc、HyperHQ的runv 以及一种基于Intel Clear Containers的实现。CRI-O项目是由Project Atomic/RedHat所启动的,还包括其它来自工业界的贡献者。它使用OCI兼容的运行时实现Kubernetes CRI API,这意味着任何OCI兼容的运行时都可以通过Kubernetes的CRI API插入到Kubernetes中,而不必对每个运行时分别实现一个CRI适配器。

当前,Kubernetes的CRI具有如下实现:

CRI-O:符合OCI的运行时; rktlet:rkt容器运行时; Frakti:一种基于Hypervisor的容器运行时; Docker CRI shim:支持Docker直接充当CRI适配器。

image

在Kubernetes部署中,Kubelet(在Kubernetes中称为Minion)是在每台主机上的本地代理,与容器运行时进行通信。使用CRI后,Kubelet可以通过gRPC(一种开源的RPC框架)与CRI垫片(Shim)通信,其前端调用实际的运行时。Pod是Kubernetes中的最小部署单元,其概念已经扩展为一个具有类似语义的概念,称为PodSandbox。对于基于Hypervisor的运行时,PodSandbox可理解成一个虚拟机。对于Docker等运行时,PodSandbox可理解为Linux命名空间。

本文转自d1net(转载)

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
8月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1132 108
|
7月前
|
Kubernetes Devops Docker
Kubernetes 和 Docker Swarm:现代 DevOps 的理想容器编排工具
本指南深入解析 Kubernetes 与 Docker Swarm 两大主流容器编排工具,涵盖安装、架构、网络、监控等核心维度,助您根据团队能力与业务需求精准选型,把握云原生时代的技术主动权。
655 115
|
7月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
759 2
|
8月前
|
Ubuntu PHP Docker
一个可以运行的Dockerfile_php ,用来创建php容器镜像
该简介描述了一个基于 Dragonwell 8 Ubuntu 的 Docker 镜像,用于构建包含 PHP 7.4 及常用扩展的运行环境。通过更换为阿里云源提升安装速度,配置了 PHP-FPM 并暴露 9000 端口,使用自定义 Dockerfile 构建镜像并成功运行容器。
|
存储 运维 Kubernetes
容器数据保护:基于容器服务 Kubernetes 版(ACK)备份中心实现K8s存储卷一键备份与恢复
阿里云ACK备份中心提供一站式容器化业务灾备及迁移方案,减少数据丢失风险,确保业务稳定运行。
|
Kubernetes Java 应用服务中间件
采集kubernetes的容器日志
原文:https://www.zeusro.tech/2018/12/08/log-to-kubernetes/ 推送到ElasticSearch
3023 0
|
监控 Kubernetes Shell
使用阿里云日志服务采集查询kubernetes容器日志
使用阿里云日志收集查询kubernetes容器日志
3154 0
|
6月前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
552 1

相关产品

  • 容器服务Kubernetes版
  • 推荐镜像

    更多