Skip to content

Latest commit

 

History

History
65 lines (54 loc) · 2.69 KB

README.md

File metadata and controls

65 lines (54 loc) · 2.69 KB

Use blobfuse-proxy

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.

Prerequisite

  • make sure blobfuse is already installed on agent node

Install blobfuse-proxy on debian-based 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

Troubleshooting

  • Get blobfuse-proxy logs
sudo journalctl -u blobfuse-proxy -l > blobfuse-proxy.log

Development

./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