Loop iSCSI interfaces and daemons for K8S.
The next backends supported
-
SharedFS - images are simple files thats stores on some shared filesystem.
-
Sheepdog - sheepdog images. Your nodes should be part of sheepdog cluster.
However you can use containerized sheepdog.
Project uses built-in kubernetes iSCSI driver for connect drivers into pods.
This implementation implies using locally runned iSCSI daemons with some distributed shared filesystem as backend, this filesystem should be directly connected to all nodes.
It's not difficult to update those scripts for use with remote runned iSCSI-daemon
(take a look on sharedfs provisioners): you can add some authentication parameters, multipathing eg.,
and bind targets to 0.0.0.0
instead 127.0.0.1
.
If you do this please send me your PR.
Otherwise you can simple use iSCSI-targetd provisioner
Image | Build Status |
---|---|
iscsi |
This image includes tgtd
and iscsid
daemons, both of them are necessary for allow
publishers announce images, and connect them to your pods.
Runs as daemonsets, but can be replaced by locally runned daemons.
Image | Build Status |
---|---|
iscsi-sharedfs-provisioner | |
iscsi-sheepdog-provisioner |
Runs as deployment.
Waits until PersistentVolumeClaims
will be created in Kubernetes.
Then creates new drives with needed parameters and announce them as PersistentVolume
in Kubernetes.
Image | Build Status |
---|---|
iscsi-sharedfs-publisher | |
iscsi-sheepdog-publisher |
Runs as daemonset.
Periodically checks some API for newly created images and creates iSCSI targets for local use only.
After that you can use built-in iSCSI driver in Kubernetes for connect your images into pods.