Pods 无法在托管的 aks 集群上安装磁盘
Pods can't mount disks on managed aks cluster
我尝试了来自 here 的简单 PVC 示例,其中 nginx 声明了 azure-managed-disk,但我收到了 'unable to mount' 错误,请参见下文。此外,我无法使用“kubectl delete pv pvc-3f3c3c78-9779-11e9-a7eb-1aafd0e2f988”删除创建的 PV。
$kubectl get events
LAST SEEN TYPE REASON KIND MESSAGE
10m Warning FailedMount Pod MountVolume.WaitForAttach failed for volume "pvc-3f3c3c78-9779-11e9-a7eb-1aafd0e2f988" : azureDisk - WaitForAttach failed within timeout node (aks-agentpool-10844952-2) diskId:(kubernetes-dynamic-pvc-3f3c3c78-9779-11e9-a7eb-1aafd0e2f988) lun:(1)
22s Warning FailedMount Pod Unable to mount volumes for pod "nginx_default(bd16b9c8-97b2-11e9-9018-eaa2ea1705c5)": timeout expired waiting for volumes to attach or mount for pod "default"/"nginx". list of unmounted volumes=[volume]. list of unattached volumes=[volume default-token-92rj6]
我的托管 aks 集群使用的是 v1.12.8,SP 具有贡献者角色(所有者角色也无济于事)。在我的简单 nginx 示例(link 提供)的 yaml 中有 storage class 'managed-premium'。
对于您的问题,没有更多的细节来判断具体原因。在这里列出可能的原因。
- API调用Azure时失败,只是一个简单的错误。如果是这样,您只需要删除它们并重新创建即可。
- pod 运行 所在的节点已经连接了太多的 Azure 磁盘。如果是这样,您需要将 pod 运行 安排在另一个没有连接到很多磁盘的节点上。
- 无法从旧节点卸载或分离 Azure 磁盘。这意味着 PV 正在使用中并附加到另一个节点。如果是这样,您需要创建另一个未用于您的 pod 的动态 PV。
你可以根据这些原因再仔细检查一下。在我看来,第三个原因是最有可能的。当然,这一切都取决于实际情况。有关类似错误的更多详细信息,请参阅 How to Understand & Resolve “Warning Failed Attach Volume” and “Warning Failed Mount” Errors in Kubernetes on Azure。
我尝试了来自 here 的简单 PVC 示例,其中 nginx 声明了 azure-managed-disk,但我收到了 'unable to mount' 错误,请参见下文。此外,我无法使用“kubectl delete pv pvc-3f3c3c78-9779-11e9-a7eb-1aafd0e2f988”删除创建的 PV。
$kubectl get events
LAST SEEN TYPE REASON KIND MESSAGE
10m Warning FailedMount Pod MountVolume.WaitForAttach failed for volume "pvc-3f3c3c78-9779-11e9-a7eb-1aafd0e2f988" : azureDisk - WaitForAttach failed within timeout node (aks-agentpool-10844952-2) diskId:(kubernetes-dynamic-pvc-3f3c3c78-9779-11e9-a7eb-1aafd0e2f988) lun:(1)
22s Warning FailedMount Pod Unable to mount volumes for pod "nginx_default(bd16b9c8-97b2-11e9-9018-eaa2ea1705c5)": timeout expired waiting for volumes to attach or mount for pod "default"/"nginx". list of unmounted volumes=[volume]. list of unattached volumes=[volume default-token-92rj6]
我的托管 aks 集群使用的是 v1.12.8,SP 具有贡献者角色(所有者角色也无济于事)。在我的简单 nginx 示例(link 提供)的 yaml 中有 storage class 'managed-premium'。
对于您的问题,没有更多的细节来判断具体原因。在这里列出可能的原因。
- API调用Azure时失败,只是一个简单的错误。如果是这样,您只需要删除它们并重新创建即可。
- pod 运行 所在的节点已经连接了太多的 Azure 磁盘。如果是这样,您需要将 pod 运行 安排在另一个没有连接到很多磁盘的节点上。
- 无法从旧节点卸载或分离 Azure 磁盘。这意味着 PV 正在使用中并附加到另一个节点。如果是这样,您需要创建另一个未用于您的 pod 的动态 PV。
你可以根据这些原因再仔细检查一下。在我看来,第三个原因是最有可能的。当然,这一切都取决于实际情况。有关类似错误的更多详细信息,请参阅 How to Understand & Resolve “Warning Failed Attach Volume” and “Warning Failed Mount” Errors in Kubernetes on Azure。