# Persistent Storage Using Longhorn [Longhorn] is a Kubernetes-native persistent storage system. It is quite complex, but installing it is fairly straightforward. [Longhorn]: https://longhorn.io ## Installation This is mostly based on the official [Install with Kubectl][0] instructions. I wanted to add node selectors to the user-deployed and system-managed components, to ensure that Longhorn only runs on x86_64 nodes, per the [Node Selector][1] instructions. ```sh kubectl apply -f longhorn.yaml ``` ## Ingress Expose the Longhorn UI outside the cluster: ```sh printf 'Longhorn username: ' read longhorn_username printf 'Longhorn password: ' read -s longhorn_password printf '%s:%s\n' \ "${longhorn_username}" \ "$(openssl passwd -stdin -apr1 <<< "${longhorn_password}")" \ > auth kubectl create secret generic -n longhorn-system basic-auth --from-file auth kubectl apply -f longhorn-ingress.yaml ``` [0]: https://longhorn.io/docs/1.3.0/deploy/install/install-with-kubectl/ [1]: https://longhorn.io/docs/1.3.0/advanced-resources/deploy/node-selector/