KataContainers和Docker的集成

⒈KataContainers?

  Kata Containers是新的虚拟机实现,可以实现和现在容器生态无缝连接,与时下最流行的容器编排工具k8s完美结合,提供容器的快速启动,和虚拟机的安全隔离,与Docker技术相比,容器之间不共用内核,使得隔离性更好。

  Kata Containers 项目的主要目标是将虚拟化的安全隔离优势和容器的快速启动特点结合起来。

⒉即生Docker,何来Kata Containers?
  Linux 容器轻巧,快速且易于集成到许多不同的应用程序工作流程中。但是,在运行容器时存在一些潜在的安全问题,特别是在单个操作系统中的多租户容器:最终,容器共享一个内核、 I / O 的一条路径、网络和内存等。

  使用Docker轻量级的容器时,最大的问题就是会碰到安全性的问题,其中几个不同的容器可以互相的进行攻击,如果把这个内核给攻掉了,其他所有容器都会崩溃。如果使用KVM等虚拟化技术,会完美解决安全性的问题,但是会影响速度。

  Kata旨在通过虚拟机管理程序来缓解这种安全问题——创建一个外观和感觉像容器的虚拟机。
  Kata Containers项目通过整合Intel Clear Containers和Hyper runV技术,能够支持不同平台的硬件,并且兼容Open Container Initiative(OCI)和Kubernetes container runtime interface(CRI)接口规范。Kata Containers项目现在由OpenStack基金会管理,代码托管在Github(https://github.com/kata-containers)上。

⒊使用Kata Containers替换Docker?

  从docker架构上看,kata-container和原来的runc是平级的。大家知道docker只是管理容器生命周期的框架,真正启动容器最早用的是LXC,然后是runc,现在也可以换成kata了。所以说kata-container可以当做docker的一个插件,启动kata-container可以通过docker命令。Kata最大的亮点是解决了传统容器共享内核的安全和隔离问题,办法是让每个容器运行在一个轻量级的虚拟机中,使用单独的内核。

⒋现在开始?

  ⒈安装Kata Containers容器包(以Centos为例)

    1.

source /etc/os-release

    2.

sudo yum -y install yum-utils

    3.

ARCH=$(arch)

    4.

BRANCH="${BRANCH:-master}"

    5.

sudo -E yum-config-manager --add-repo "http://download.opensuse.org/repositories/home:/katacontainers:/releases:/${ARCH}:/${BRANCH}/CentOS_${VERSION_ID}/home:katacontainers:releases:${ARCH}:${BRANCH}.repo"

    6.

sudo -E yum -y install kata-runtime kata-proxy kata-shim

  2.安装Docker

    1.

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    2.

sudo yum -y install docker-ce

  3.使用以下方法之一配置Docker默认使用Kata Containers:

    1.systemd(这是默认设置,如果选择自动安装选项,则会自动应用 )

      1.

sudo mkdir -p /etc/systemd/system/docker.service.d/

      2.

cat <<EOF | sudo tee /etc/systemd/system/docker.service.d/kata-containers.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -D --add-runtime kata-runtime=/usr/bin/kata-runtime --default-runtime=kata-runtime
EOF

    2.使用Docker daemon.json

      1.创建docker配置文件夹

sudo mkdir -p /etc/docker

      2.将以下定义添加到/etc/docker/daemon.json

{
  "default-runtime": "kata-runtime",
  "runtimes": {
    "kata-runtime": {
      "path": "/usr/bin/kata-runtime"
    }
  }
}

    3.使用以下命令重新启动Docker systemd服务:

      1.

sudo systemctl daemon-reload

      2.

sudo systemctl restart docker

    4.测试

      1.运行Kata Containers

sudo docker run busybox uname -a

      此时命令显示了在容器内运行的内核版本的详细信息,这应与主机的内核版本不同。

  

  

原文地址:https://www.cnblogs.com/fanqisoft/p/12096904.html

时间: 2024-10-22 04:05:30

KataContainers和Docker的集成的相关文章

Mesos和Docker的集成

摘要: 众所周知,Mesos全面支持Docker.但是这意味着什么呢?在命令行里运行docker run...就可以使用Docker了.还需要做什么?让我们一起研究下Mesos的高级特性--和Docker的集成.本文选自<用Mesos框架构建分布式应用>. 因为Docker本身想管理整个容器,从chroot.命名空间到整个命名空间的cgroup,它会和默认的Mesos容器发生冲突.因此,Mesos添加了容器机的支持,一种可插拔的机制,让Mesos的容器机子系统可扩展:最初Mesos的基于 LX

Jenkins+Docker+Git集成平台搭建

一.环境准备 以我本地为例[Jenkins:192.168.132.52           Docker:192.168.10.143] 1.一台运行Jenkins服务的服务器,需安装插件:git plugin.Git Parameter Plug-In.GitLab Plugin.Publish Over SSH.SSH Slaves plugin 2.一台或若干Docker宿主机服务器 3.一台提供Git服务的服务器(直接使用github服务) 二.搭建Docker宿主机 (1).安装并启

vsts + XX云服务器构建netcore+docker持续集成交付部署

持续集成交付部署是什么意思,它给我们带来什么好处? 先贴一张图 持续集成(Continuous Integration) 持续集成强调开发人员提交了新代码之后,立刻进行构建.(单元)测试(这个要看情况了是否需要) 持续交付(Continuous Delivery) 持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中.比如,我们完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试

gitlab+jenkins+maven+docker持续集成(七)——.Jenkins Pipeline持续集成

Pipeline的几个基本概念: Stage: 阶段,一个Pipeline可以划分为若干个Stage,每个Stage代表一组操作.注意,Stage是一个逻辑分组的概念,可以跨多个Node. Node: 节点,一个Node就是一个Jenkins节点,或者是Master,或者是Agent,是执行Step的具体运行期环境. Step: 步骤,Step是最基本的操作单元,小到创建一个目录,大到构建一个Docker镜像,由各类Jenkins Plugin提供 新建pipeline项目 进入配置 这里要参考

gitlab+jenkins+maven+docker持续集成(六)——.Jenkins获取git tags代码进行持续集成

GitFlow的工作流 如上图所示,在开发工作中,不同的代码分支对应着项目或产品的不同形态,围绕特定形态的人力投入也不相同.随着时间的推进, 我们在 开发分支 中合并产品的功能实现,产品的功能逐步完善. 当产品功能完善到一定阶段,可以交付给测试团队进行内部测试时,产品代码可以合并到 测试分支(注意,上图未体现测试分支,实际中是否需要测试分支需要具体而定),编译打包测试. 经过若干迭代测试,功能稳定成熟,产品可以发布,此时,代码合并到主干(master)分支,用于发布(TAG标记). 所以这里用T

gitlab+jenkins+maven+docker持续集成(十一)——sonarqube及sonarscanner代码审查

Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质 量.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd.checkstyle. findbugs.Jenkins.通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程 进行代码质量管理. 同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar. 此外,Sonar 的插件还可以对

django的部署以及和docker 的集成

开发环境:ubuntu14  python3 首先安装docker,docker-compose  如果不懂,详见 DOCKER官网 接下来安装django 通过pip安装 sudo pip install django=1.11   这里可以指定要安装的版本 如果没有安装pip 请先预安装pip    sudo apt-get install pip 先创建一个文件夹 mkdir first_django 查看文件  ls 进入文件夹 cd first_django 创建工程  django-

maven docker 插件集成的几个小坑

昨晚看springboot视频的时候,发现可以使用docker-maven-plugin这个插件直接build出 docker 镜像到远程服务器上,感觉很方便,于是自己也试了一下,但是碰到了几个问题,记录一下. 一.开启docker远程端口 视频中使用的是centos,然而我是Ubuntu.好吧,其实没啥区别,但是还是有一点小区别的,,比如文件位置不同. Ubuntu下需要编辑的文件为 vim /etc/default/docker 在最后一行加上 DOCKER_OPTS="-H unix://

gitlab+jenkins+maven+docker持续集成(五)——Maven 项目构建配置

首先,安装插件Maven Integration plugin 接下来我们配置Global Tool Configuration 前提先在系统里安装好jdk, maven, 创建maven项目 其它配置大同小异,主要说明下这步 pom.xml 我这里的是在项目中,如果是其它路径这里直接配置好路径就可以 pom.xml配置这里略过 配置后,我们构建