[英]Unable to attach or mount volumes on pods
我們注意到這些錯誤是在節點池自動縮放並且現有節點被新的計算實例替換之后開始的。 這也發生在維護 window 期間。我們正在使用 NFS 服務器。 GCP Kube.netes 集群版本為 1.21.6
該問題似乎只影響集群上的某些節點。 我們已經封鎖了“健康”節點上出現掛載錯誤和 pod 的節點。
"Unable to attach or mount volumes: unmounted volumes=[vol],
unattached volumes=[vol]: timed out waiting for the condition"
我們還在 konnectivity-agent 上看到錯誤:
"connection read failure" err="read tcp
10.4.2.34:43682->10.162.0.119:10250: use of closed network connection"
我們認為問題出在啟用自動縮放以及將新節點引入池中時。 問題是它似乎是完全隨機的。 有時 pod 運行良好,而其他 pod 出現安裝錯誤。
此錯誤表明 NFS 工作負載將停滯在終止 state。此外,在工作節點上可能會觀察到一些磁盤節流。
解決方案:
此問題有兩種可能的解決方法。
強制刪除NFS 工作負載有時可以緩解此問題。 刪除后,可能還需要重啟worker節點的kubelet。
NFS 版本 v4.1 和 v4.2 不應受此問題影響。 NFS 版本是通過配置指定的,不需要更改映像。
請更改 NFS 版本,如下所示:
mountOptions:
- nfsvers=4.2
原因
NFS v4.0 有一個已知問題,即一次有太多連接時 NFS pod 的限制。 由於該限制,如果 NFS 容器先被刪除,Kubelet 無法從 Pod 和工作節點卸載 NFS 卷。 此外,當服務器死機時 NFS 掛載會失效是一個已知問題。 眾所周知,許多在工作節點上構建的陳舊掛載會導致未來的 NFS 掛載速度變慢。 請注意,也可能存在與此錯誤相關的一些卸載問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.