前言

最近搬家了,又重新整理了一下东西,突然想起来一件事,我主机上外接usb的那个磁盘是一个系统盘,我之前是把OMV(openmediavault)系统装在上面的。难怪上次搬家后Royal怎么也连不上,明明没改过密码,我当时没搞懂什么原因,郁闷了好久。现在主机磁盘的系统上装了K8s跑着Blog项目,我也懒的换回OMV再配置一次了,就想着把OMV装在K8s里好了。整了两天试了一个网上的image,两个OMV官方的版本Package打包,都失败了,弄不出来弄不出来。容器的运行依赖宿主机,不像虚拟机隔离那么完全,OMV要控制的东西太多,权限问题,软件问题,不是不通就是权限冲突,权限高了还会把主机搞重启了。ChatGPT一开始就说不建议这么干,我还是想弄弄看,白弄了两天,气人。

网上的image

https://hub.docker.com/r/ikogan/openmediavault

dockerhub上下载最高的一个,不过版本有点低,好像是2的,现在最新是6了。

它里面有个startup脚本不知道是不是发布者自己写的,里面启动了/etc/init.d/下的一部分工具,但是没启动ftp和samba,试过启动ftp后能连接,鉴权也能过,但是会报:ftp An error occurred while executing the action 'Get Files'. Details: Illegal PORT command (500).

官网Package自己打包做image

https://packages.openmediavault.org/public/在下载页面中

尝试了用shaitan(OMV6),usul(OMV5)打包,这两个分别要用debian11和debian10的基础镜像

Shaitan打成的包在Docker中最高权限运行有可能让我的旧电脑重启,不好说是不是我电脑不太行。K8s不会引发重启,但是会导致systemd作为pid1启动时异常,无法启动/etc/init.d下的工具

Usul搞起来能用,不管是在Docker里还是部署在K8s中都能用,但是不知道啥原因,dbus特别慢,启动慢,连着OMV后台操作时,查看个用户和用户组都加载不了,把它关了一下就出来了,不开它有些东西都设置不了。硬要用能用,配置都能搞上,不过太难用了,没试过配置好后能否正常连接上。OMV2好像不依赖dbus,网上那个image没开也能配置,感觉每个版本的机制有调整,shaitan界面大改,应用配置还会显示出涉及的工具,感觉有些配置修改是比usul又多了些关联的工具,比如改时区。

K8s容器是直接用的Containerd

容器启动机制

容器启动与linux一样首个启动命令会成为pid1,当pid1为systemd(/lib/systemd/systemd)时会自动启动/etc/init.d下的所有工具,相当于linux正常启动过程,但是systemd启动方式需要更多的权限以保证容器正常运行。

如果以工具前台方式启动,如nginx,则只会有启动的工具,但是可以手动启动/etc/init.d下的工具,保证必要的环境。

示例:
CMD ["/lib/systemd/systemd"]
或
ENTRYPOINT ["/usr/sbin/omv-engined", "-f"] #-f表示前台运行

记录

打包与转移到ctr命令

docker build -t omv-selfr .
docker save -o omv-self.tar omv-selfr
ctr --namespace k8s.io i import omv-self.tar
ctr --namespace k8s.io i ls|grep omv

init.d下工具执行分类

必要:
anacron rrdcached mdadm nmbd procps quotarpc rsync ssh cpufrequtils hwclock.sh mdadm-waitidle php7.3-fpm rpcbind rsyslog smartmontools sudo  chrony cron kmod monit nginx postfix quota salt-minion x11-common samba-ad-dc nfs-common udev proftpd smbd nfs-kernel-server 
非必要:
lvm2 lvm2-lvmpolld watchdog wd_keepalive dbus avahi-daemon collectd loadcpufreq

dbus avahi-daemon可能为必要

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注