Azure 文件共享未安装到 pod
Azure file share not getting mounted to the pod
我正在尝试将 azure 文件共享挂载到 kubernetes pod 但出现如下错误:
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
访问被拒绝错误通常表示问题出在您的帐户上。 Kubernetes 需要凭据才能访问文件共享。这些凭据存储在 Kubernetes 秘密中,在创建 Kubernetes pod 时会引用它。
创建 Kubernetes 机密时,机密值必须采用 base64 编码。
如果您还没有这样做,请完全按照 document 中所述创建 Kubernetes secret,首先对存储帐户的名称进行编码。如果需要,请将 $AKS_PERS_STORAGE_ACCOUNT_NAME 替换为 Azure 存储帐户的名称,然后告诉我们进展如何。**
附带说明:目前 AKS 不支持 Windows 容器。
为此,您需要使用 ACS Engine 部署 Windows Kubernetes 集群。 ACS 引擎 - https://github.com/Azure/acs-engine
有了这个,下面是使用 Azure 磁盘设置卷的说明:https://github.com/andyzhangx/Demo/tree/master/windows/azuredisk
我正在尝试将 azure 文件共享挂载到 kubernetes pod 但出现如下错误:
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
访问被拒绝错误通常表示问题出在您的帐户上。 Kubernetes 需要凭据才能访问文件共享。这些凭据存储在 Kubernetes 秘密中,在创建 Kubernetes pod 时会引用它。 创建 Kubernetes 机密时,机密值必须采用 base64 编码。 如果您还没有这样做,请完全按照 document 中所述创建 Kubernetes secret,首先对存储帐户的名称进行编码。如果需要,请将 $AKS_PERS_STORAGE_ACCOUNT_NAME 替换为 Azure 存储帐户的名称,然后告诉我们进展如何。**
附带说明:目前 AKS 不支持 Windows 容器。 为此,您需要使用 ACS Engine 部署 Windows Kubernetes 集群。 ACS 引擎 - https://github.com/Azure/acs-engine 有了这个,下面是使用 Azure 磁盘设置卷的说明:https://github.com/andyzhangx/Demo/tree/master/windows/azuredisk