Kubernetes1.7新特性:支持绕过Docker,直接通过Containerd管理容器

  1. 云栖社区>
  2. 博客>
  3. 正文

Kubernetes1.7新特性:支持绕过Docker,直接通过Containerd管理容器

店家小二 2018-12-14 23:21:39 浏览985
展开阅读全文

背景情况

从Docker1.11版本开始,Docker依赖于containerd和runC来管理容器,containerd是控制runC的后台程序,runC是docker公司按照OCI标准规范编写的一个操作容器的命令行工具,containerd这个后台程序还可以操作满足OCI标准规范的其他容器工具,也就意味着以后只要是按照OCI标准规范开发的容器工具,都可以被containerd使用起来。使用containerd好处是,当docker daemon或者containerd两个进程crash后,应用容器不会“死掉”,未来要是实现的功能是,当containerd daemon重新启动后可以同应用容器重新建立连接。


从Docker1.11版本开始,daemon模块调用关系图如下:

美国时间12月14日,Docker公司宣布将containerd从Docker Engine中分离,并捐赠到一个新的开源社区独立发展和运营,阿里云,AWS, Google,IBM和Microsoft作为初始成员,会为项目提供贡献和维护人员。

Kubernetes 1.7新特性-支持绕过Docker,直接通过Containerd管理容器

Kubernetes1.7中,增加了直接通过调用containerd来管理容器的α新特性。

从上图中可以明显的看出来绕过Docker,直接通过containerd管理容器,可以节省一个操作步骤,那么这样会带来很多好处:

1、 由于减少了一个操作步骤,提高了系统效率,并且系统更易于维护。

2、 由于kubelet并没有变化,那么不影响以前用户使用。

3、 取消了DockerDaemon,整个系统占用的资源更少了,可以给业务使用的资源变多了。

4、 不依赖DockerDaemon,整个系统更加开放。

要让kubernetes直接通过containerd管理容器,需要下面几个步骤:

1、 安装:containerd:v0.2.3-1098-g8ed1e24

2、 安装runc:v1.0.0-rc3

3、 安装cni: v0.4.0

4、 按照kubernetes:v1.7.0以及以上版本

5、 在kubernetes集群中配置CONTAINER_RUNTIME=remoteCONTAINER_RUNTIME_ENDPOINT=’/var/run/cri-containerd.sock’./hack/local-up-cluster.sh,其中“CONTAINER_RUNTIME=remote”就表示使用containerd直接管理容器。

目前支持如下基本功能:

1、 Sandbox网络管理

2、 POD级别Sandbox和Container生命周期管理

3、 镜像管理

4、 在容器中执行命令

5、 容器日志管理

本文转自中文社区-Kubernetes1.7新特性:支持绕过Docker,直接通过Containerd管理容器

网友评论

登录后评论
0/500
评论