Azure / azure-storage-fuse

A virtual file system adapter for Azure Blob storage
Other
658 stars 206 forks source link

MountVolume.MountDevice failed for volume on Azure Kubernetes #1443

Closed lm-emerios closed 3 months ago

lm-emerios commented 3 months ago

Which version of blobfuse was used?

2.3.0

Which OS distribution and version are you using?

OS ImageUbuntu 22.04.4 LTS / Azure Kubernetes 5.15.0-1064-azure

What was the issue encountered?

I don't know if it's related, but to days ago Azure automatically updated our K8S nodes to the last security patchs. After that none of our deployment that uses Azure Storage blobfuse are able to mount their volumes.

Our environment configurations did not changed before that update and the implementation it was made by following the documentation nothing out of the ordinary.

Any ideas? Thanks a lot.

Have you found a mitigation/solution?

No.

Please share logs if available.

image

MountVolume.MountDevice failed for volume "xxxxxxxxxxxxxxxxx" : rpc error: code = Internal desc = Mount failed with error: rpc error: code = Unknown desc = exit status 1 Error: failed to initialize new pipeline [Azure CLI not found on path] , output: Please refer to http://aka.ms/blobmounterror for possible causes and solutions for mount errors.

souravgupta-msft commented 3 months ago

Hi @lm-emerios. Thanks for reaching out. From the error it looks like you are using ObjectID with msi as the auth mode. In our latest release 2.3.0, we migrated our code from the deprecated ADAL to MSAL library through azidentity SDK. Now if you are using msi with ObjectID, it takes a dependency on Azure CLI being installed for authentication. This is why you are seeing the error, [Azure CLI not found on path].

As an alternative, you can use msi with its ClientID or ResourceID for authentication. This would not require you to have Azure CLI installed.

lm-emerios commented 3 months ago

Hi @souravgupta-msft Thank you very much for the quick response. As you told me, we corrected the configuration to use AzureStorageIdentityResourceID instead of AzureStorageIdentityObjectID and the pods were able to mount the volumes without problems.

Thank you so much :D