blobfuse-proxy

command
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 22, 2021 License: Apache-2.0 Imports: 6 Imported by: 0

README

blobfuse-proxy

  • supported CSI driver version: v1.1.0 or later version

By default, restart csi-blobfuse-node daemonset would 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, 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.

Step#1. Install blobfuse-proxy on debian based agent node

below daemonset would also install latest blobfuse version on the node

kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/deploy/blobfuse-proxy/blobfuse-proxy.yaml
Step#2. Install Blob CSI driver with node.enableBlobfuseProxy=true setting
helm repo add blob-csi-driver https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts
helm install blob-csi-driver blob-csi-driver/blob-csi-driver --namespace kube-system --version v1.1.0 --set node.enableBlobfuseProxy=true
Troubleshooting
  • Get blobfuse-proxy logs on the node
kubectl get po -n kube-system -o wide | grep blobfuse-proxy
csi-blobfuse-proxy-47kpp                    1/1     Running   0          37m
kubectl logs -n kube-system csi-blobfuse-proxy-47kpp
Development
  • install blobfuse-proxy package, run as a service manually
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

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

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL