37 lines
1.0 KiB
Markdown
37 lines
1.0 KiB
Markdown
# 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
|
|
|
|
```sh
|
|
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
|
|
|
|
`kubectl apply -f storage-class.yml`
|