Skip to content

Can't follow tutorial to get a blob container to mount #413

@bbearce

Description

@bbearce

What happened:
Followed tutorial at this exact link: https://github.com/kubernetes-sigs/blob-csi-driver/blob/master/deploy/example/e2e_usage.md

What you expected to happen:
Under section "Static Provisioning(use an existing storage account)" there are two options:

[1] Using storage class
[2] Use secret

I've tried both and the nginx demo deploy never creates let alone mounts the azure blob container. Below are my steps for section [2]. This is the indefinite state my nginx example pod is in that is supposed to mount an azure blob container.

$ kubectl get pods
NAME                                   READY   STATUS              RESTARTS   AGE
ingress-azure-7658ffc594-skg8w         1/1     Running             0          43d
mic-6b5468dc47-xrljr                   1/1     Running             0          43d
mic-6b5468dc47-z98nd                   1/1     Running             0          43d
nginx-blob                             0/1     ContainerCreating   0          2m50s 

This shows the current list of pods already running. Below is the output from: $ kubectl describe pods nginx-blob

Events:
  Type     Reason              Age    From                     Message
  ----     ------              ----   ----                     -------
  Normal   Scheduled           3m49s  default-scheduler        Successfully assigned default/nginx-blob to aks-nodepool1-30745680-vmss000004
  Warning  FailedAttachVolume  109s   attachdetach-controller  AttachVolume.Attach failed for volume "pv-blob" : attachdetachment timeout for volume uniqe-volumeid
  Warning  FailedMount         106s   kubelet                  Unable to attach or mount volumes: unmounted volumes=[blob01], unattached volumes=[blob01 default-token-br7l4]: timed out waiting for the condition

How to reproduce it:

azurestorageaccountname="mghradcodalabdest"
azurestorageaccountkey="CP5bLexed6eglvOqH4Jmdm*******..."

kubectl create secret generic azure-secret --from-literal azurestorageaccountname=$azurestorageaccountname --from-literal azurestorageaccountkey=$azurestorageaccountkey --type=Opaque

# First of two attempts
wget https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/deploy/example/pvc-blob-csi-static.yaml
kubectl delete -f pvc-blob-csi-static.yaml
kubectl create -f pvc-blob-csi-static.yaml

wget https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/deploy/example/pv-blobfuse-csi.yaml
kubectl delete -f pv-blobfuse-csi.yaml
kubectl create -f pv-blobfuse-csi.yaml

wget https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/deploy/example/nginx-pod-blob.yaml
kubectl delete -f nginx-pod-blob.yaml
kubectl create -f nginx-pod-blob.yaml

In that attempt I used the downloaded pv-blobfuse-csi.yaml file (linked by "Create PV: download pv-blobfuse-csi.yaml file") and changed these values under volumeAttributes:
resourceGroup: mgh-rad-codalab-d-e-storage-rg
storageAccount: mghradcodalabdest
containerName: var

Next I will use the text displayed on the tutorial:

# Second of two attempts
wget https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/deploy/example/pvc-blob-csi-static.yaml
kubectl delete -f pvc-blob-csi-static.yaml
kubectl create -f pvc-blob-csi-static.yaml

#You'll notice in the instructions that linked from text "Create PV: download pv-blobfuse-csi.yaml file" is a file that is actually not the same as the referenced PV example you can copy and paste. Using the text displayed for file pv-blobfuse-csi.yaml.
kubectl delete -f pv-blobfuse-csi.yaml
kubectl create -f pv-blobfuse-csi.yaml

wget https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/deploy/example/nginx-pod-blob.yaml
kubectl delete -f nginx-pod-blob.yaml
kubectl create -f nginx-pod-blob.yaml

but still I get the same error.

Events:
  Type     Reason              Age                    From                     Message
  ----     ------              ----                   ----                     -------
  Warning  FailedMount         7m50s (x43 over 127m)  kubelet                  Unable to attach or mount volumes: unmounted volumes=[blob01], unattached volumes=[blob01 default-token-br7l4]: timed out waiting for the condition
  Warning  FailedMount         61s (x12 over 121m)    kubelet                  Unable to attach or mount volumes: unmounted volumes=[blob01], unattached volumes=[default-token-br7l4 blob01]: timed out waiting for the condition
  Warning  FailedAttachVolume  51s (x36 over 127m)    attachdetach-controller  AttachVolume.Attach failed for volume "pv-blob" : attachdetachment timeout for volume uniqe-volumeid

Anything else we need to know?:

Environment:

  • CSI Driver version: I'm not sure how to find it. There is no quick command for csi driers like everything else. For the csi pod I get this from running kubectl describe pod csi-secrets-store-csi -driver-n698q --namespace csi:
Labels:       app=secrets-store-csi-driver
              app.kubernetes.io/instance=csi
              app.kubernetes.io/managed-by=Helm
              app.kubernetes.io/name=secrets-store-csi-driver
              app.kubernetes.io/version=0.0.20
              controller-revision-hash=767dc45cd
              helm.sh/chart=secrets-store-csi-driver-0.0.20
              pod-template-generation=1

My Helm install commands:

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
  • Kubernetes version (use kubectl version): v1.19.2
  • OS (e.g. from /etc/os-release):
NAME="Pop!_OS"
VERSION="20.04 LTS"
ID=pop
ID_LIKE="ubuntu debian"
PRETTY_NAME="Pop!_OS 20.04 LTS"
VERSION_ID="20.04"
  • Kernel (e.g. uname -a):
Linux pop-os 5.11.0-7614-generic #15~1618626693~20.04~ecb25cd-Ubuntu SMP Thu Apr 22 16:20:32 UTC  x86_64 x86_64 x86_64 GNU/Linux
```1
- Install tools: ?
- Others: The master branch has a little x next to it making it seem like some checks haven't passed. Should be concerned about that? Should I be experimenting with other branches other than master?


Metadata

Metadata

Assignees

No one assigned

    Labels

    lifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions