iSulad部署以及使用方案

文章目录

部署isulad

系统版本:openEuler 22.03 LTS版本,建议用欧拉系统

一、基础安装

bash 复制代码
# 克隆地址
git clone https://gitee.com/openeuler/iSulad.git
# 重新安装依赖环境meson
sudo apt remove meson -y
sudo apt install -y python3-pip
pip3 install --user meson
# 运行测试版本
~/.local/bin/meson --version
export PATH="$HOME/.local/bin:$PATH"
# 安装依赖
sudo apt-get install -y libgmock-dev
# 安装1.7以上版本的go
wget https://go.dev/dl/go1.20.14.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.20.14.linux-amd64.tar.gz
echo 'export PATH=/usr/local/go/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
# 安装依赖
sudo env "PATH=$PATH" bash -x CI/install_depends.sh
# 依赖最后如果有可以忽略:install_depends.sh: line 155: /root/.cargo/env: No such file or directory
# 更改权限执行安装
cd ~/iSulad
mkdir -p build
cd build

cmake .. \
  -DCMAKE_INSTALL_PREFIX=/usr \
  -DENABLE_LCR=OFF \
  -DENABLE_RUNC=ON

make -j$(nproc)
sudo make install

补充:

bash 复制代码
# 如果要重新编译
# 删除依赖项
sudo rm -rf /root/lcr
sudo rm -rf /root/lxc
sudo rm -rf /root/cri-tools
sudo rm -rf /root/dnsname
sudo rm -rf /root/plugins
# 停止服务
sudo systemctl stop isulad

# 1️⃣ 删二进制
sudo rm -f /usr/local/bin/isulad
sudo rm -f /usr/local/bin/isula

# 2️⃣ 删动态库(关键)
sudo rm -f /usr/local/lib/libisula*
sudo rm -f /usr/local/lib/liblcr*
sudo rm -f /usr/local/lib/libshim*

# 3️⃣ 刷新链接器缓存
sudo ldconfig

# 4️⃣ 清运行时数据(避免脏数据)
sudo rm -rf /var/lib/isulad
sudo rm -rf /run/isulad

二、修改配置文件

bash 复制代码
# 创建基础配置文件config.json,systemcontainer_config.json
mkdir -p /etc/default/isulad/
vim /etc/default/isulad/config.json
cp /etc/default/isulad/config.json /etc/default/isulad/systemcontainer_config.json
# 需要安装runc,用runc替换默认的runtime方案,所以按照如下config.json内容设置
sudo apt install runc

config.json文件内容

bash 复制代码
{
  "hook_spec": "/etc/isulad/hooks",
  "start_timeout": 120,
  "registry-mirrors": [
        "https://docker.1ms.run"
   ],
  "log_level": "INFO",
  "ociVersion": "1.0.2",
  "default_runtime": "runc",
  "runtimes": {
    "runc": {
      "path": "/usr/sbin/runc",
      "runtime_root": "/run/isulad/runc",
      "runtime": "runc"
    }
  }
}

三、配置成服务,service文件如下

bash 复制代码
[Unit]
Description=iSulad daemon
Documentation=https://gitee.com/openeuler/iSulad
After=network.target

[Service]
Type=simple

# 关键:前台运行
ExecStart=/usr/local/bin/isulad

# 自动重启
Restart=always
RestartSec=2

# 提高资源限制(避免容器启动异常)
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity

# cgroup(建议)
Delegate=yes

# kill 行为
KillMode=process

[Install]
WantedBy=multi-user.target

四、前台调试启动isulad

bash 复制代码
# 查询可执行文件位置
which isulad
# 运行测试
sudo strace -f -o /root/isulad.trace /usr/local/bin/isulad
# 查看是否启动
ps -ef | grep isulad
# 查看启动异常报错日志
sudo tail -50 /root/isulad.trace
# 查看系统运行日志
tail -200 /var/lib/isulad/isulad.log

使用

isulad是华为推出的一套通用容器引擎,使用方法同docker类似,需要配置镜像源,拉取镜像

修改镜像源

bash 复制代码
vim /etc/isulad/daemon.json
{
    "registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://docker.1panel.live"
    ]
}
bash 复制代码
# 拉取镜像
isula pull quay.io/rockylinux/rockylinux:8
# 查看镜像列表
sudo isula images
# 启动运行容器
sudo isula run -dit --net=host  --privileged --name isula_openfilter 镜像id  /bin/bash
# 查看是否运行
sudo isula ps
# 拷贝主机文件夹到容器root目录下
sudo isula cp 文件夹 容器id:/root/
# 进入容器
sudo isula exec -it 容器id /bin/bash
# 将正在运行的容器导出为文件
isula export -o export.tar 容器id
# 将tar镜像导入为本地镜像
isula import export.tar my-image:latest
相关推荐
中云DDoS CC防护蔡蔡19 分钟前
DDOS和CC攻击谁更可怕
运维·服务器·经验分享·网络安全·ddos
Ruiery26 分钟前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
ClickHouseDB31 分钟前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
欧米欧1 小时前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器
Ruiery1 小时前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全
todoitbo2 小时前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器
时间售卖铺2 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
前端精髓2 小时前
调用大模型API
运维·服务器·microsoft
跨境小彭3 小时前
Temu 全托管模式下,SKU 利润核算的实践复盘
大数据·运维·人工智能·自动化·temu
李纲明3 小时前
WordPress 定时发布不跑、备份邮件延误:先核 WP-Cron 触发与回环,再改系统 Cron
运维·wordpress·定时任务·devdiy·wp-cron