使用本文可協助您針對 AKS Arc 中的記憶體相關問題進行疑難解答和解決。
設定持續性磁碟區宣告會導致錯誤:「無法初始化代理程式。 錯誤: mkdir /var/log/agent: 許可權遭拒」
此權限遭拒絕的錯誤表示預設儲存類別可能不適合您的工作負載,且會發生在執行於 Kubernetes 1.19.x 版或更新版本上的 Linux 工作負載。 遵循安全性最佳做法之後,許多 Linux 工作負載都會指定 Pod 的 securityContext fsGroup
設定。 工作負載無法在 Azure Stack HCI 上的 AKS 上啟動,因為預設記憶體類別未指定 fstype (=ext4)
參數,因此 Kubernetes 無法根據 fsGroup
工作負載所要求的變更檔案和永續性磁碟區的擁有權。
若要解決此問題,請參閱可用來佈建 PVC 的定義自訂儲存類別。
容器記憶體介面 Pod 停滯在「ContainerCreating」狀態
使用 Kubernetes 1.16.10 版建立新的 Kubernetes 工作負載叢集,然後更新為 1.16.15。 更新之後,csi-msk8scsi-node-9x47m
Pod 會停滯在 ContainerCreating 狀態,且 kube-proxy-qqnkr
Pod 會停滯在 Terminating 狀態,如下列輸出所示:
Error: kubectl.exe get nodes
NAME STATUS ROLES AGE VERSION
moc-lf22jcmu045 Ready <none> 5h40m v1.16.15
moc-lqjzhhsuo42 Ready <none> 5h38m v1.16.15
moc-lwan4ro72he NotReady master 5h44m v1.16.15
\kubectl.exe get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
5h38m
kube-system csi-msk8scsi-node-9x47m 0/3 ContainerCreating 0 5h44m
kube-system kube-proxy-qqnkr 1/1 Terminating 0 5h44m
由於 kubelet
最終會處於不良狀態,且無法再與 API 伺服器通訊,因此唯一的解決方案是重新啟動 kubelet
服務。 重新啟動之後,叢集會進入執行中狀態。
從損毀傾印記錄填滿的磁碟記憶體
磁碟記憶體可以從所建立的損毀傾印記錄填滿。 這是因為已過期的內文代理程式客戶端憑證。 徵兆可能如下所示:
- 服務無法啟動。
- Kubernetes Pod、部署等無法啟動,因為資源不足。
重要
此問題可能會影響 2023 年 4 月 18 日之後於 2023 年 4 月 18 日發行到 2023 年 3 月發行後建立的所有新的「新版」管理與目標叢集節點。 此問題已在 2023-05-09 版和更新版本中修正。
此問題可能會影響任何涉及配置磁碟空間或寫入新檔案的作業,因此任何「磁碟空間/資源不足」錯誤都是不錯的提示。 若要檢查此問題是否存在於指定的節點上,請執行下列殼層命令:
clouduser@moc-lwm2oudnskl $ sudo du -h /var/lib/systemd/coredump/
此命令會報告診斷檔案所耗用的儲存空間。
根本原因
用來向服務端點驗證內文代理程式的客戶端憑證到期會導致代理程序當機,導致損毀傾印。 代理程式的當機/重試迴圈在初始啟動時大約是 5 秒,而且沒有逾時。 這表示節點文件系統每隔幾秒鐘就會建立大約 330 MB) 的新檔案 (,這可以快速取用磁碟記憶體。
風險降低
慣用的緩和措施是升級至具有更新憑證的最新版本 1.10.18.10425 版。 若要這樣做,請先在更新 AKS-HCI 主機之前,先將 工作負載叢集手動升級 至任何 支援的次要版本 。
如需 AKS Arc 版本和所有最新 AKS-HCI 新聞的詳細資訊,請訂閱 AKS 版本頁面。
如果升級不是選項,您可以關閉 mdsd 服務。 針對每一個「輪機」節點:
使用下列殼層命令關閉 Geneva 代理程式:
sudo systemctl disable --now mdsd
確認已成功停用「內文」代理程式:
sudo systemctl status mdsd
使用下列命令刪除累積的檔案:
sudo find /var/lib/systemd/coredump/ -type f -mmin +1 -exec rm -f {} \; sudo find /run/systemd/propagate -name 'systemd-coredump@*' -delete sudo journalctl --rotate && sudo journalctl --vacuum-size=500M
重新啟動節點:
sudo reboot
記憶體 Pod 當機,且記錄指出 『createSubDir』 參數無效
如果您的部署中已安裝SMB或NFS CSI驅動程式,而且您升級至舊版的May組建,可能會發生錯誤。 不再接受其中一個稱為 createSubDir
的參數。 如果這適用於您的部署,請遵循下列指示來解決記憶體類別失敗。
如果您遇到此錯誤,記憶體 Pod 會當機,而記錄表示 createSubDir
參數無效。
重新建立記憶體類別。
建立永續性磁碟區時,嘗試掛接磁碟區失敗
刪除 AKS Arc 環境中的永續性磁碟區或永續性磁碟區宣告之後,就會建立新的永續性磁碟區來對應至相同的共用。 不過,在嘗試掛接磁碟區時,掛接作業會失敗,而 Pod 會因 NewSmbGlobalMapping failed
錯誤而逾時。
若要解決無法掛接新磁碟區的問題,您可以透過 SSH 連線到 Windows 節點,並執行 Remove-SMBGlobalMapping
,提供與該磁碟區對應的共用。 執行此命令之後,應可順利掛接磁碟區。