0

我正在尝试在 kubernetes pod 上安装 azure 文件共享,但出现如下错误:

Events:
  Type     Reason                 Age               From                           Message
  ----     ------                 ----              ----                           -------
  Normal   Scheduled              12s               default-scheduler              Successfully assigned azurepod to k8s-agent-e90e3bbe-0
  Normal   SuccessfulMountVolume  12s               kubelet, k8s-agent-e90e3bbe-0  MountVolume.SetUp succeeded for volume "default-token-6v6lb"
  Warning  FailedMount            4s (x5 over 12s)  kubelet, k8s-agent-e90e3bbe-0  MountVolume.SetUp failed for volume "azure" : mount failed: exitstatus 32
Mounting command: mount
Mounting arguments: //006ujp7qo4bhmfmagnt0.file.core.windows.net/persistshare /var/lib/kubelet/pods/64dadbe9-dff0-11e7-a005-000d3a279b90/volumes/kubernetes.io~azure-file/azure cifs [vers=3.0,username=006ujp7qo4bhmfmagnt0,password=key1,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)

请在下面找到我用来创建 pod 的 yaml 文件:

apiVersion: v1
kind: Pod
metadata:
 name: azurepod
spec:
 containers:
  - image: kubernetes/pause
    name: azure
    volumeMounts:
      - name: azure
        mountPath: /mnt/azure
 volumes:
  - name: azure
    azureFile:
      secretName: azure-secret
      shareName: persistshare
      readOnly: false
4

1 回答 1

1

拒绝访问错误通常表明问题出在您的帐户上。Kubernetes 需要凭据才能访问文件共享。这些凭据存储在 Kubernetes 机密中,在创建 Kubernetes pod 时会引用该机密。创建 Kubernetes 密钥时,密钥值必须经过 base64 编码。如果您还没有这样做,请完全按照本文档中的说明创建 Kubernetes 密钥,首先对存储帐户的名称进行编码。如果需要,请将 $AKS_PERS_STORAGE_ACCOUNT_NAME 替换为 Azure 存储帐户的名称,并告诉我们情况如何。**

附带说明:当前 AKS 不支持 Windows 容器。为此,您需要使用 ACS 引擎部署一个 Windows Kubernetes 集群。ACS 引擎 - https://github.com/Azure/acs-engine 有了这个,这里有关于使用 Azure 磁盘设置卷的说明:https ://github.com/andyzhangx/Demo/tree/master/窗户/天蓝色磁盘

于 2017-12-13T14:23:25.183 回答