在 AWS 上的庫伯內斯修復 LVM 問題
我們一直在將傳統基礎架構遷移到 庫貝內特斯.以秒為單位部署的能力在數量上有很大的不同。 精 益 我們可以進行的實驗。Kubernetes 為我們提供了一種以規模管理 Docker 容器的簡單性的方法,該比例可以處理10億個小部件事件,並處理需要發生的相應數據處理。
雖然庫伯內特斯是真棒,它仍然是相對較新的,有很多的地方貢獻。這一切都始於我們的主節點在 AWS 上關閉時 - 它沒有恢復。它應該有。AWS 上的節點設置為恢復沒有問題。這導致了我的第一次 提交.在挖掘系統日誌後,我看到了這個明顯的錯誤:
The disk drive for /mnt/ephemeral is not ready yet or not present.
keys:Continue to wait, or Press S to skip mounting or M for manual recovery
深入瞭解源,我發現在 AWS 上,Kubernetes 腳本創建了一個 LVM 卷來存儲數據。
lvcreate -l 100%FREE --thinpool pool-ephemeral vg-ephemeral
運行代碼似乎工作。不止這些,主人還從事啟動工作。發生什麼事了?我登錄到一個現有的主控形狀,並尋找邏輯卷。它不在那裡!目錄是那裡的,但卷不是。
回到系統日誌(從第一次啟動開始),我們在"lvcreate"上看到此錯誤:
Insufficient free space: 3905 extents needed, but only 3897 available
顯然,這是lvcreate上的一個問題:你不能使用100%免費與薄池!它會失敗。您可以在 票.
嗯,沒有必要為此使用薄池。我們不會過度調配 Kubernetes 中的磁碟 — # 我的第一個拉取請求!我簽署了貢獻者的許可協議,其餘的是歷史。
我們現在有 4 個生產 Kubernetes 群集,具有數十個 pod(和可重新啟動的主節點),並期待"Ubernetes"中的穩定性和高可用性工作。如果你有興趣解決這樣的問題,我們很樂意有你 加入我們的團隊!