1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openeuler-iSulad

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_zh.md 9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 03.03.2025 20:41 2eb3b13
iSulad

License Language

Introduction

iSulad is a lightweight container engine implemented in C/C++. It stands out due to its ease of use, flexibility, convenience, and speed. It does not depend on hardware specifications and architectures, has minimal resource consumption, and has wide-ranging applications.

Architecture

To obtain information about the architecture of iSulad, refer to the documentation: architecture.

Functionality

Runtime

iSulad supports several container runtimes including lxc, runc, and kata-runtime.

LXC

LXC is an open-source container management runtime written in C. It consumes few resources and is suitable for scenarios where system noise minimization is required. This is the default runtime used by iSulad.

RUNC

RUNC is a runtime written in Go and adheres to the OCI standard. When using runc, version 1.0.0 or higher of the OCI runtime-spec must be supported by iSulad.

Kata-Runtime

Kata-Runtime is a secure runtime designed for launching secure containers.

Image

iSulad supports various image formats, including standard OCI images and external rootfs.

OCI

Standard OCI images are compatible with Docker and support pulling images from remote repositories and starting containers.

External RootFS

The format of external rootfs allows users to prepare the rootfs directory themselves for starting, which is useful for system containers.

Operation Interfaces

iSulad provides two different interfaces for managing images and containers: CLI and CRI.

CLI

CLI represents a command-line interface for managing images and containers. This is a standard client-server model where iSulad works as a server daemon, and iSula acts as an independent client command interface for the user.

Commands provided by iSula cover most common usage scenarios, including container management (such as start, stop, remove, pause) and image management (such as pull, import, remove).

CRI

CRI (Container Runtime Interface) is a service interface for containers and images provided by Kubernetes for integrating container engines with Kubernetes.

The CRI interface is based on gRPC. iSulad follows the CRI standard and implements a CRI gRPC Server containing Runtime Service and Image Service for managing containers and images respectively. The gRPC Server iSulad should listen on a local Unix socket, while the Kubernetes component kubelet runs as a gRPC Client.

Getting Started

Installation

iSulad can be installed using the yum command. Before installation, ensure that the openEuler repository configuration is correctly set up:

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

Install iSulad with the following command:

$ yum install -y iSulad

If after executing the installation command the following error occurs:

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.

you will need to execute the command rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-openEuler.

Configuration

After successful installation of iSulad, it needs to be configured with the registry mirror address. For example, if using "docker.io":

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

Launching

iSulad offers two options for launching services:

  1. Launch iSulad through the systemd service
# Start the iSulad service using the systemd command
$ systemctl restart isulad 
  1. Directly launch iSulad using the command
# Launch iSulad using the standard socket, logging level, and image management functions
$ sudo isulad 

Container Operations

iSulad provides two interfaces for managing images and containers: CLI and CRI.

CLI

iSulad uses iSula as the client command interface. Below are some basic commands for managing containers using the CLI interface:

  • Get a list of all containers in the current environment:
$ sudo isula ps -a
  • Create a container using the busybox image:

    • Create a container named test using the default runtime
    $ sudo isula create -t -n test busybox
    • Create a container named testrunc using the runc runtime
    $ sudo isula create -t --runtime runc -n testrunc busybox
  • Start the test container:

$ sudo isula start test
  • Stop the test container:
$ sudo isula kill test
  • Remove the test container:
$ sudo isula rm test

CRI

iSulad can be integrated with Kubernetes through the CRI interface. To learn more about integration with Kubernetes, refer to the documentation: integration with Kubernetes.

Performance

Use ptcr as a performance testing tool for the container engine to demonstrate the performance of iSulad on computers with different architectures.

ARM

  • In case of sequential operation with 10 containers, the comparative radar chart of performance between iSula, docker, and podman is presented below:

ARM sequentially- В случае параллельной операции с 100 контейнерами, сравнительный радарный график производительности iSula с docker и podman представлен ниже:

ARM параллельно

x86

  • В случае последовательной операции с 10 контейнерами, сравнительный радарный график производительности iSula с docker и podman представлен ниже:
x86 последовательно
  • В случае параллельной операции с 100 контейнерами, сравнительный радарный график производительности iSula с docker и podman представлен ниже:
x86 параллельно

Дополнительная информация о тестировании производительности доступна здесь: Тестирование производительности.

Требования к ядру

iSulad поддерживается на ядрах Linux версии 3.0.x и выше.

Совместимость

Совместимые версии стандартных нормативных документов для iSulad следующие:

  • Версия 1.0.0 стандарта OCI
  • Версии 0.3.0–1.0.0 стандарта CNI; начиная с версии iSulad 2.1.4 поддерживается версия CNI 1.0.0
  • Версии 2.1.x и выше стандарта lcr

Поддержка Kubernetes

iSulad поддерживает версии Kubernetes 1.13 и выше. Ниже представлена таблица совместимости iSulad с Kubernetes, которая указывает минимальную требуемую версию iSulad для каждого указанного версии Kubernetes.

Версия iSulad Версия Kubernetes Версия CRI
v2.0.0+ v1.13–v1.18 v1alpha2
v2.0.8+ v1.19–v1.22 v1alpha2
v2.1.4+ v1.23–v1.26 v1, v1alpha2

Примечание: все пути к файлам, URL-адреса и IP-адреса остаются без изменения.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/openeuler-iSulad.git
git@api.gitlife.ru:oschina-mirror/openeuler-iSulad.git
oschina-mirror
openeuler-iSulad
openeuler-iSulad
master