ref: 2de61eb7d06e50cabe9cacc7fd31d125dd74c3b1 zfs-server-cluster-setup/README.md -rw-r--r-- 2.4 KiB
2de61eb7Johan Vandegriff Updated readme for script changes 2 years ago


A set of installation and setup scripts for creating a cluster of CentOS servers that boot from the ZFS filesystem.



Install Ubuntu with a ZFS filesystem. Should be run from a live USB (unlike the CentOS script) of the desktop version of Ubuntu. Tested and working with Ubuntu 16.04 and Ubuntu 18.04. Based on this wiki article.


Install XRDP remote desktop, ssh access, firewall, utility packages, and xfce desktop settings.


Install kubernetes using kubeadm to a node, either the master node or a worker node. The master node must be installed first, which will generate a "kubeadm join" command to be run on the worker nodes.


Common functions for all the scripts, such as output text coloring, error messages, and disk utilities


Install CentOS with a ZFS filesystem. Should be run from a CentOS installation, not a live USB. See the beginning of the script for instructions. This script is not working and I have switched to Ubuntu for the setup. If you have a fix, submit a pull request.

#Future Scripts:

  • backup-script-setup.sh -- Install a cron job that backs up the ZFS pool with syncoid to another location specified by the user.
  • k8s-install.sh -- install kubectl, kubeadm, and kubefed packages from kubernetes.
  • master-node-setup.sh -- set up a machine as a master node of a cluster and join a federated group of clusters in different locations using kubefed.
  • worker-node-setup.sh -- set up a machine as a worker node and join the local cluster with kubeadm as specified by the master node.
  • node-setup-common.sh -- a script that holds all the common elements between the worker and master nodes. This should not be called directly, the other scripts will call it as needed.

#Other Ideas

  • config files to further automate the setup and to provide the same options to multiple scripts
  • scripts to install monitoring tools that will email the user when ZFS has a fault or when a kubernetes node fails
  • a way to remotely access the system with ssh tunneling if the machine becomes not externally accessible