Skip to content

Latest commit

 

History

History
79 lines (51 loc) · 3.18 KB

AKS-snapshots-20200522.md

File metadata and controls

79 lines (51 loc) · 3.18 KB

AKS snapshots - 2020/05/22

tags: tech workshop

前情提要

我們現在的 AKS 上,對於有用到 mongodb 的服務如果要做備份都是使用 mongodump,但是 mongodump 常常會影響到 production 的服務

目標

  • 在不影響服務的狀態下,做備份

mongodump

  • 除了 mongodump,有沒有其他的備份方式?

  • mongodump 的問題

    • Ops 的人可能不懂 mongodb
    • mongodump 會吃很多資源,進一步影響到正在跑的服務
    • 每次備份完讀寫進 Azure files 都花一筆錢

改成 snapshots

  • snapshots
    • 其他公司目前了解下來都是用 snapshots 做備份
    • 備份速度上有巨大的差異
    • 災難還原很快,不用下載備份檔到 local,重新做 mongorestore
    • 對 production DB 的影響應該很小
    • 迭加 snapshots 版本上去更省錢、省空間
    • 缺點在於 AKS 對於 snapshots 支援不夠好,不能根據 snapshot 創出 pv 來使用,必須手動作這件事

Azure 上的備份服務

az login

  • 透過這篇,可以拿到 appId、tenant、password,就可以使用 az login 了
  • 可以用 az ad sp credential list --id <appId> 方式,得到相關資訊

mongodb on AKS

實做在 AKS 上做 Azure snapshots 做備份、還原

備份

  • 開一個 cronjob 會定期跑 az snapshot create,就會得到一個 Azure snapshot

拿 snapshot 還原 disk 資料

  • AKS 使用 snapshots
  • 這邊有個問題是,AKS 不支援直接透過 snapshot create persistent volume

k8s 1.17 支援

指令