【云原生】容器方案 isula、containerd 基本功能测试

打印 上一主题 下一主题

主题 1739|帖子 1739|积分 5221

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
isula、containerd 基本功能测试

测试环境



  • 树莓派 4B
  • CPU: Cortex-A72 4C
  • RAM: 8G
  • SD卡: 128G C10 A1 U3
  • OS: openEuler-22.03
  • Docker: 20.10.17
  • iSula: 2.0.7
  • Containerd: 1.6.6
除 Docker 外没有集成网络组件,isula 与 containerd 均使用 host 网络测试。
测试环境

containerd openEuler 源均为 1.2 版本太低.

  • 从 docker 官方源安装 containerd.io 1.6.6-3.1.el7 涉及依靠:container-selinux policycoreutils selinux-policy selinux-policy-targeted
  • 安装 container networking-plugins , oe源版本 0.8.6-5 版本太低, network 组件不可用, 使用来自 nerdctl 仓库源 https://github.com/containerd/nerdctl/releases/download/v0.21.0/nerdctl-full-0.21.0-linux-arm64.tar.gz
  • 安装 iptables
题目与大概解决方法:


  • 日记:由于 containerd 不支持 docker plugins loki 日记网络服务不可用, 可替换为使用 promtail 直接从当地网络日记.
  • 启动方式:nerdctl compose 取代 docker-compose .
nerdctl compose up -d 启动之后, 基本服务可用(只测试了上传下载)
使用 containerd 替换 docker 必要进行以下操作:


  • containerd 高版本 rpm 打包并推入仓库
  • container networking-plugins 高版本 rpm 打包并推入仓库
  • nerdctl 打包为 rpm 并推入仓库
  • nerdctl iptables container-selinux policycoreutils selinux-policy selinux-policy-targeted containerd containernetworking-plugins 加入 os 构建
  • system-agent 中调整 docker network create 为 nerdctl network create
  • system-agent 中调整 docker-compose 相关操作为 nerdctl compose
  • system-agent 中检测 docker 服务是否启动的相关操作更换为检测 containerd 是否启动
  • system-agent 中监听的 docker0 Ip 必要修改为 nerdctl ip
资源占用:



  • containerd 本身资源占用比 docker 小,但为了兼容 docker-compose 的模式,引入 nerdctl 做 containerd 兼容 docker-compose.yml 文件的剖析方式,每个容器都会启动一个 nerdctl 的子进程来存储配置、存储日记、调用 cni 创建网络等,导致实际占用的总体内存稍高于 dockerd + docker-driver + docker-proxy 所占用的内存。
  • containerd 共计 490-510MB,isulad 共计 450-480MB,docker 共计 380M-420M。(如使用 ctr/isula 直接创建 host 模式 containerd/isula 的容器,containerd 守护进程共约 70-80MB,isulad 共计 30-40MB,期中 containerd 和 isula 均无网络等相关配置,仅能使用 host 网络,或使用 cni 接入 bridge 网络。)
启动速度:



  • nerdctl 不支持 healthcheck 和 loki 日记插件,启动速度对比中将 docker-compoase.yml 中引用的 loki 插件和 healthcheck 相关配置去除
  • containerd 使用 nerdctl 启动 docker-compose.yml 速度较快,10s 内
  • docker-compose 启动 docker-compose.yml 速度较快,20s 内,大致差距在与剖析 docker-compose.yml 的速度
  • nerdctl 调用链 nerdctl -> containerd + cni -> shim-runc -> runc
  • docker-compose 调用链接 docker-compose -> dockerd -> containerd -> shim-runc -> runc
使用 host 题目与大概解决方法:



  • 使用 ctr 直接创建容器,host 本机网络模式启动,需修改 gateway 转发地点,与各模块容器端口,启动方式无法使用 compose 文件,必要实行命令启动。
  • 端口暴露的题目必要用防火墙处置惩罚。
  • 必要考虑端口辩论。
其他遗留题目:


  • isula、containerd、cri-o 不支持 docker-compose
  • redhat-podman openEuler 兼容性目前有题目,依靠库版本太低。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表