80 Star 407 Fork 217

GVPopenEuler / iSulad

加入 Gitee
与超过 800 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README_zh.md
iSulad

license language

Introduction

iSulad是一个由C/C++编写实现的轻量级容器引擎,具有轻、灵、巧、快的特点,不受硬件规格和架构限制,底噪开销更小,可应用的领域更为广泛。

Architecture

iSulad架构的相关介绍请查看:architecture

Function

Runtime

iSulad支持多种容器runtime,包括lxc、runc和kata。

lxc

lxc是用C语言编写的开源容器操作runtime,资源占用少,适用于对底噪资源限制高的场景,为iSulad默认的runtime。

runc

runc是用GO语言编写的符合OCI标准的runtime,使用runc时要求其使用的OCI runtime-spec version不低于iSulad支持的oci spec version 1.0.0。

kata-runtime

kata-runtime是一个安全容器runtime,用于启动安全容器时使用。

Image

iSulad支持多种镜像格式,包括OCI标准镜像格式、external rootfs镜像格式和embedded image镜像格式。

OCI

OCI标准镜像格式是与docker兼容的镜像格式,支持从远程镜像仓库拉取镜像、运行容器。

external rootfs

external rootfs镜像格式允许用户自行准备可启动的root fs目录,主要用于系统容器场景。

embedded image

embedded image镜像格式是iSulad特有的嵌入式镜像格式,占用资源低,主要用于嵌入式应用场景。

Operation Interface

iSulad提供两种不同的镜像和容器管理操作接口,分别为CLI和CRI。

CLI

CLI采用命令行的形式进行镜像和容器管理,是标准的C/S架构模式,将iSulad作为daemon服务端,iSula作为独立的客户端命令,供用户使用。

iSula提供的命令参数覆盖了常用的大部分应用场景,包括容器的操作接口,如运行、停止、删除、pause等操作,也包括镜像的相关操作,如下载、导入、删除等。

CRI

CRI(Container Runtime Interface)是由K8S对外提供的容器和镜像的服务接口,供容器引擎接入K8s。

CRI接口基于gRPC实现。iSulad遵循CRI接口规范,实现 CRI gRPC Server,CRI gRPC Server 中包括 Runtime Service 和 image Service,分别用来提供容器运行时接口和镜像操作接口。iSulad的 gRPC Server 需要监听本地的Unix socket,而K8s的组件 kubelet 则作为 gRPC Client 运行。

Getting Started

Installing

iSulad可以使用rpm或者yum命令进行安装,安装之前需要查看确保配置了openEuler仓库:

$ cat << EOF > /etc/yum.repos.d/openEuler.repo
[openEuler]
baseurl=https://repo.openeuler.org/openEuler-20.03-LTS/OS/\$basearch
enabled=1
EOF

yum安装iSulad的命令如下:

$ yum install -y iSulad

若运行安装命令后报如下错误:

Repository 'openEuler' is missing name in configuration, using id.

You have enabled checking of packages via GPG keys. This is a good thing.
However, you do not have any GPG public keys installed. You need to download
the keys for packages you wish to install and install them.
You can do that by running the command:
    rpm --import public.gpg.key


Alternatively you can specify the url to the key you would like to use
for a repository in the 'gpgkey' option in a repository section and YUM
will install it for you.

For more information contact your distribution or package provider.

则需要先运行rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-openEuler

Configure

成功安装iSulad之后,需要先配置好容器镜像的注册地址,以"docker.io"为例:

# cat /etc/isulad/daemon.json
.....
    "registry-mirrors": [
        "docker.io"
    ],
.....

Run

iSulad提供了两种服务的启动方式:

  1. 使用systemd服务来启动iSulad
# 通过systemd命令来重启isulad服务
$ systemctl restart isulad 
  1. 直接使用命令启动iSulad
# 使用默认套接字名称、默认日志级别和镜像管理功能启动isulad
$ sudo isulad 

Operations on containers

iSulad 提供了两个管理镜像和容器的操作接口:CLI和CRI。

CLI

iSulad使用 iSula 作为客户端命令,以下是利用CLI接口管理容器的一些基本命令:

  • 列出当前环境下的所有容器:
$ sudo isula ps -a
  • 通过busybox镜像创建容器:

    • 采用默认的runtime创建容器test
    $ sudo isula create -t -n test busybox
    • 创建runtime为runc的容器testrunc
    $ sudo isula create -t --runtime runc -n testrunc busybox
  • 启动容器test:

$ sudo isula start test
  • 停止容器test:
$ sudo isula kill test
  • 移除容器test
$ sudo isula rm test

CRI

iSulad可以通过CRI接口与kubernetes集成,如何与kubernetes集成请参考k8s_integration

Performance

采用ptcr作为容器引擎的性能测试工具,展示在不同架构的计算机中iSulad的性能效果。

ARM

  • 10个容器串行操作的情况下,iSuladockerpodman的性能对比雷达图如下:
ARM searially
  • 100个容器并行操作的情况下,iSuladockerpodman的性能对比雷达图如下:
ARM parallerlly

X86

  • 10个容器串行操作的情况下,iSuladockerpodman的性能对比雷达图如下:
X86 searially
  • 100个容器并行操作的情况下,iSuladockerpodman的性能对比雷达图如下:
X86 parallerlly

关于性能测试的更多信息请查看 Performance test

Kernel Requirements

iSulad支持在3.0.x之后的Kernel上运行。

Compatibility

iSulad 能够兼容的标准规范版本如下:

  • 兼容 1.0.0 版本的OCI
  • 兼容 0.3.0 版本以上的CNI
  • 兼容 2.1.x 版本以上的lcr

简介

iSulad is a light weight container runtime daemon which is designed for IOT and Cloud infrastructure. 展开 收起
取消

发行版 (19)

全部

iSulad

贡献者

全部

近期动态

加载更多
不能加载更多了
C
1
https://gitee.com/openeuler/iSulad.git
git@gitee.com:openeuler/iSulad.git
openeuler
iSulad
iSulad
master

搜索帮助