.. | ||
ssh | ||
Readme.md | ||
storage-class.yml | ||
values.yml |
ZFS-provisioner
Requirements
- ZFS on storage server
- nfs-kernel-server on storage server
- sudo on storage server
Install
- Add user
adduser zfs-provisioner
- Configure sudo on storage server:
echo "zfs-provisioner ALL=(ALL) NOPASSWD:/sbin/zfs *,/bin/chmod *" > /etc/sudoers.d/zfs-provisioner
- Generate an ssh keypair:
ssh-keygen
- Edit values.yml
- hostAliases: IP and name of hypervisor or storage server
- ssh.identities.id_rsa: generated private key
- ssh.knownHosts: public machine key of storage server (/etc/ssh/ssh_host_rsa_key.pub)
- Install
kubectl create namespace zfs-provisioner
helm repo add zfs-provisioner https://ccremer.github.io/kubernetes-zfs-provisioner
helm install kubernetes-zfs-provisioner --namespace zfs-provisioner zfs-provisioner/kubernetes-zfs-provisioner -f values.yml
- Edit storage-class.yml and create the storage class
- parameters
- hostname: hostname of stroage server (make sure it resolves!)
- parentDataset: used ZFS dataset
- parameters
kubectl apply -f storage-class.yml