0

我一直按照github上的说明设置 azure 文件卷。

apiVersion: v1
kind: Secret
metadata:
name: azure-files-secret
type: Opaque
data:
  azurestorageaccountname: Yn...redacted...=
  azurestorageaccountkey: 3+w52/...redacted...MKeiiJyg==

然后我在我的 pod 配置中有:

...stuff
volumeMounts:
  - mountPath: /var/ccd
  name: openvpn-ccd
...more stuff
volumes:
    - name: openvpn-ccd
      azureFile:
        secretName: azure-files-secret
        shareName: az-files
        readOnly: false

创建容器然后失败:

 MountVolume.SetUp failed for volume "kubernetes.io/azure-file/007adb39-30df-11e7-b61e-000d3ab6ece2-openvpn-ccd" (spec.Name: "openvpn-ccd") pod "007adb39-30df-11e7-b61e-000d3ab6ece2" (UID: "007adb39-30df-11e7-b61e-000d3ab6ece2") with: mount failed: exit status 32 Mounting command: mount Mounting arguments: //xxx.file.core.windows.net/az-files /var/lib/kubelet/pods/007adb39-30df-11e7-b61e-000d3ab6ece2/volumes/kubernetes.io~azure-file/openvpn-ccd cifs [vers=3.0,username=xxx,password=xxx,dir_mode=0777,file_mode=0777] Output: mount error(13): Permission denied Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

我之前遇到过密码错误,因为我没有对帐户密钥进行 base64 编码,但现在已经解决了,而且我得到了更通用的 Permission denied 错误,我怀疑这可能是在挂载点上,而不是在文件存储上。无论如何,我需要有关如何进一步排除故障的建议吗?

4

1 回答 1

0

这似乎是您的存储帐户的身份验证错误。Un-base64 您的密码,然后使用与 storage account 位于同一区域的 ubuntu 映像进行验证。

下面是验证 Azure 文件共享是否正确挂载的示例脚本:

if [ $# -ne 3 ]
then
 echo "you must pass arguments STORAGEACCOUNT STORAGEACCOUNTKEY SHARE"
 exit 1
fi

ACCOUNT=$1
ACCOUNTKEY=$2
SHARE=$3
MOUNTSHARE=/mnt/${SHARE}

apt-get update && apt-get install -y cifs-utils

mkdir -p /mnt/$SHARE
mount -t cifs //${ACCOUNT}.file.core.windows.net/${SHARE} ${MOUNTSHARE} -o vers=2.1,username=${ACCOUNT},password=${ACCOUNTKEY}
于 2017-05-08T19:25:22.053 回答