疑難排解

為什麼我的 Kubernetes 中 DirectPV 安裝失敗?

您需要具備執行安裝的必要權限。請詳閱規格文件。關於 Red Hat OpenShift,請參閱OpenShift 專用文件

升級 DirectPV 至 v4.x.x 後,我找不到 direct-csi-min-io 儲存類別。為什麼?

舊版 DirectCSI 已棄用,包括 direct-csi-min-io 儲存類別,且不再支援。先前建立的磁碟區會繼續正常運作。對於新的磁碟區請求,請使用 directpv-min-io 儲存類別。

DirectPV 安裝失敗,出現類似Error; unable to get legacy drives; conversion webhook for direct.csi.min.io/v1beta3, … 或類似的錯誤訊息。為什麼?

安裝 DirectPV 也會嘗試升級舊版 DirectCSI。升級早於 v3.1.0 的 DirectCSI 需要執行轉換 webhook 服務。關於適當的升級程序,請參閱升級文件

discover 命令的 YAML 輸出中,我找不到我的儲存磁碟機。為什麼?

DirectPV 會忽略符合以下任何條件的磁碟機:

  • 磁碟機的大小小於 512MiB。
  • 磁碟機是隱藏的。
  • 磁碟機是唯讀的。
  • 磁碟機已分割。
  • 磁碟機被其他裝置佔用。
  • 磁碟機已掛載或已被 DirectPV 使用。
  • 磁碟機是正在使用的交換分割區。
  • 磁碟機是 CDROM。

檢查 discover --all 命令輸出的最後一欄,查看哪些條件排除該磁碟機。解決這些條件後再試一次。

你們是否支援 SAN、NAS、iSCSI、網路磁碟機等?

DirectPV 適用於使用直接連接儲存的高效能本機磁碟區。我們不建議使用任何遠端磁碟機,因為遠端磁碟機可能會導致效能不佳。

你們是否支援 LVM、Linux RAID、硬體 RAID、軟體 RAID 或類似的技術?

它可以運作,但我們強烈建議使用原始裝置以獲得更好的效能。

是否支援 LUKS 裝置?

是。

我已經使用本機持久性磁碟區 (Local PV) 作為儲存。為什麼我需要 DirectPV?

本機持久性磁碟區是臨時的,並且與 Pod 的生命週期相關聯。當 Pod 重新啟動或刪除時,這些磁碟區會遺失,這可能會導致資料遺失。

此外,本機持久性磁碟區的生命週期需要管理技能。DirectPV 會動態地按需佈建磁碟區,這些磁碟區在 Pod/節點重新啟動時仍保持持久性。DirectPV 磁碟區的生命週期由相關聯的持久性磁碟區宣告 (PVC) 管理,簡化了磁碟區管理。

我在我的持久性磁碟區宣告中看到 no drive found ... 的錯誤訊息。為什麼?

下表列出了可能的原因和解決方案。

原因 解決方案
在未將任何磁碟機新增至 DirectPV 的情況下,進行磁碟區宣告。 新增磁碟機。
沒有磁碟機具有足夠的可用空間來滿足請求的大小。 新增新的磁碟機或移除過時的磁碟區。
不滿足要求的拓撲。 修改持久性磁碟區宣告。
在要求的節點上找不到要求的磁碟機。 修改持久性磁碟區宣告。
要求的節點不是 DirectPV 節點。 修改持久性磁碟區宣告。

我看到已建立持久性磁碟區宣告,但未建立對應的 DirectPV 磁碟區。為什麼?

DirectPV 隨附 WaitForFirstConsumer 磁碟區繫結模式。這表示必須先排定使用磁碟區的 Pod。

我看到使用磁碟區的 Pod 仍處於 Pending 狀態。為什麼?

  • 如果您尚未建立對應的持久性磁碟區宣告,請建立它。
  • 您可能正面臨 Kubernetes 排程問題。請參閱 Kubernetes 文件關於排程

我看到 volume XXXXX is not yet staged, but requested with YYYYY 錯誤。為什麼?

根據 CSI 規格,Kubelet 應該先呼叫 StageVolume RPC,然後呼叫 PublishVolume RPC。在極少數情況下,不會觸發/呼叫 StageVolume RPC,但會呼叫 PublishVolume RPC。重新啟動您的 Kubelet 並向您的 Kubernetes 提供者回報此問題。

我看到 udev 錯誤。為什麼?

您可能極少看到 udev 錯誤。

unable to find device by FSUUID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; either device is removed or run command `sudo udevadm control --reload-rules && sudo udevadm trigger` on the host to reload

在極少數情況下,您系統中的 Udev 未能更新 /dev 目錄。執行以下命令以更新並重新載入 udev,然後向您的作業系統供應商回報此問題。

sudo udevadm control --reload-rules && sudo udevadm trigger