From Ubuntu Wiki ZFS:
ZFS
Summary
ZFS is a combined file system and logical volume manager designed and implemented by a team at Sun Microsystems led by Jeff Bonwick and Matthew Ahrens. Its development started in 2001 and it was officially announced in 2004. In 2005 it was integrated into the main trunk of Solaris and released as part of OpenSolaris. Currently, as of January 2015, it is native to Solaris, OpenSolaris, OpenIndiana, illumos, Joyent SmartOS, OmniOS, FreeBSD, Debian GNU/kFreeBSD systems, NetBSD, OSv and supported on Mac OS with MacZFS.
The name "ZFS" originally stood for "Zettabyte File System". Currently it can store up to 256 ZiB (zebibytes).
Installing ZFS on Ubuntu
The ZFS filesystem is available for Ubuntu as either a FUSE module or a native kernel module. The kernel module is provided by default. To install the user-level tools, simply install:
sudo apt install zfsutils-linux
For all current versions from 16.04 onward.
In addition to be able to have ZFS on root, install:
sudo apt install zfs-initramfs
No where is it mentioned that zfs-dkms
is a prerequisite.
kABI
kABI is the Kernel Application Binary Interface. It doesn't change very often but when it does all programs must share the same version.
Tracking ABI/API changes
From the ABI Labratory we can see the last changes were on June 4, 5 and 6th, 2018:

We can see the Linux Kernel numbers revised in June 2018 were:
4.14.48
, 4.9.107
and 4.4.136
all 6 year LTS kernels
The corresponding Ubuntu Kernel version numbers were probably:
We need to upgrade Linux Kernels when new hardware support or bug fixes to existing hardware are released. When an ABI/API change is involved the Ubuntu kernel may or may not work. Even if an ABI/API change doesn't take place the Ubuntu Kernel may still break for some people for other reasons.
If you have a generic Ubuntu Kernel and a Linux Mainline kernel after June 2018 in this example, they would both share the same kABI.
zfs-initramfs
is not necessary for generic kernels (I never needed it and ZFS seems to be working, it might have a purpose, though).zfsutils-linux
is probably necessary in any case where one wants to do any ZFS administration. – Kalle Richter Aug 24 '18 at 06:24zfs-dkms
provides an update functionality? However, important updates for the same Ubuntu version would probably justify to release a kernel update. – Kalle Richter Aug 24 '18 at 06:35zfs import -f rpool
do? Can you simply have a script run automatically every boot and check if it's been run already? if yes do nothing, if no then run it? The script might reside in/etc/rc.local
or another place. – WinEunuuchs2Unix Aug 25 '18 at 18:33