By default, restart csi-blobfuse-node daemonsetwould make current blobfuse mounts unavailable. When fuse nodeserver restarts on the node, the fuse daemon also restarts, this results in breaking all connections FUSE daemon is maintaining. You could find more details here: No easy way how to update CSI driver that uses fuse.
This page shows how to run a blobfuse proxy on all agent nodes and this proxy mounts volumes and maintains FUSE connections. Blobfuse proxy receives mount request in a GRPC call and then uses this data to mount and returns the output of the blobfuse command.
- make sure blobfuse is already installed on agent node
- Download blobfuse-proxy package, run as a service
wget https://github.com/kubernetes-sigs/blob-csi-driver/raw/master/deploy/blobfuse-proxy/v0.1.0/blobfuse-proxy-v0.1.0.deb -O /tmp/blobfuse-proxy-v0.1.0.deb
dpkg -i /tmp/blobfuse-proxy-v0.1.0.deb
mkdir -p /var/lib/kubelet/plugins/blob.csi.azure.com
systemctl enable blobfuse-proxy
systemctl start blobfuse-proxy
blobfuse-proxy start unix socket under
/var/lib/kubelet/blobfuse-proxy.sock
by default
- Get
blobfuse-proxy
logs
sudo journalctl -u blobfuse-proxy -l > blobfuse-proxy.log
- make sure all required Protocol Buffers binaries are installed
./hack/install-protoc.sh
- when any change is made to
proto/*.proto
file, run below command to generate
rm pkg/blobfuse-proxy/pb/*.go
protoc --proto_path=pkg/blobfuse-proxy/proto --go-grpc_out=pkg/blobfuse-proxy/pb --go_out=pkg/blobfuse-proxy/pb pkg/blobfuse-proxy/proto/*.proto
- build new blobfuse-proxy binary by running
make blobfuse-proxy
- Generate debian dpkg package
cp _output/blobfuse-proxy ./pkg/blobfuse-proxy/debpackage/usr/bin/blobfuse-proxy
dpkg-deb --build pkg/blobfuse-proxy/debpackage
- Generate redhat/centos package
cp _output/blobfuse-proxy ./pkg/blobfuse-proxy/rpmbuild/SOURCES/blobfuse-proxy
cd ~/rpmbuild/SPECS/
rpmbuild --target noarch -bb utils.spec
- Installing blobfuse-proxy package
# On debian based systems:
wget https://github.com/kubernetes-sigs/blob-csi-driver/raw/master/deploy/blobfuse-proxy/v0.1.0/blobfuse-proxy-v0.1.0.deb
dpkg -i blobfuse-proxy-v0.1.0.deb
# On redhat/centos based systems
wget https://github.com/kubernetes-sigs/blob-csi-driver/raw/master/deploy/blobfuse-proxy/v0.1.0/blobfuse-proxy-v0.1.0.rpm
rpm -ivh utils-1.0.0-1.noarch.rpm