Skip to main content
Version: Next

儲存空間(Storage)

儲存空間(Storage)為管理 Storage 相關的功能,包含儲存空間類別(Storage Class)儲存卷(Volumes)

儲存空間類別(Storage Class)#

Storage Class 為 Kubernetes 平台專屬的功能,透過定義 Storage Class,使用者可於 Kubernetes 平台上介接各種不同的儲存裝置來使用。點選頁面左側的STORAGE下的StorageClass,即可從頁面右側觀看該使用者所有可使用的 Storage Class 列表,列表中可查看各 Storage Class 的基本資料。

  • Storage Class Name:該 Storage Class 的名稱。
  • Provisioner:該 Storage Class 於 Kuberentes 使用的 CSI。
  • Auth Type:該 Storage Class 的權限類型,共有 user、project、public 三個類型。
    • user:可由專案管理者與專案使用者建立,建立後,只可供個人使用。
    • project:可由專案管理者建立,建立後,只可供專案管理者使用。
    • public:可由系統管理員建立,建立後,可供所有人使用。
  • User:該 Storage Class的建立者。
  • Action:可對 Storage Class 進行的操作,目前只支援刪除。 storage class overview

儲存空間類別資訊#

點選列表中的任一 Storage Class,即可從下方看到該 Storage Class 的細部資訊。

storage class detail

StorageClass Detail中呈現的是關於此 Storage Class 相關的參數,參數的說明可參考建立儲存空間類別Volume List中呈現的是透過此 Storage Class 所建立的 Volume 列表,列表中的參數說明可參考儲存卷(Volumes)

建立儲存空間類別#

透過點選Add StorageClass,即可進入建立 Storage Class 的表單中。系統管理員於admin專案中建立的 Storage Class,其 Auth Type 皆為public。

在表單的Basic Info,可輸入Storage Class NameDescriptionProject StorageClass

  • Storage Class Name:即此 Storage Class 的名稱。
  • Description:即此 Storage Class 的額外描述。 storage class create basic info

在表單的Storage Class Setting,可輸入關於此 Storage Class 的參數,包含ProvisionerNFS Server IPNFS PathMount OptionsUsing existing NFS data for volume creation

  • Provisioner:選擇此 Storage Class 於 Kuberenetes 底層所使用的 CSI。系統會自動列出目前選擇的 Kubernetes 平台上所安裝的 CSI,若需於平台上新增 CSI,目前必須人工手動進入平台安裝,暫不支援由 Portal 安裝。
  • NFS Server IP:輸入 NFS Server IP 資訊。若 Provisioner 選擇了 NFS CSI,則會出現此選項。
  • NFS Path:輸入 NFS Path。若 Provisioner 選擇了 NFS CSI,則會出現此選項。
  • Parameters:輸入此 Storage Class 相關參數。若 Provisioner 選擇了非 NFS CSI,則會出現此選項。
  • Mount Options:若有額外關於 Storage 參數,則可透過新增 Mount Options 來設定。
  • Using existing NFS data for volume creation:決定是否以NFS上現有目錄內的資料,作為 Volume 建立的內容。若勾選,則當透過此 Storage Class 建立 Volume 時,不會於 NFS 上新增目錄,而是直接使用 NFS 現有的目錄。若 Provisioner 選擇了 NFS CSI,則會出現此選項。 storage class create setting1storage class create setting2

當表單都填寫完成後,即可點選Submit來建立 Storage Class。

儲存卷(Volumes)#

Volumes 為基於 Storage Class 所建立的儲存空間。Storage Class 定義要使用底層的哪種 Storage 以及相關的資訊,Volumes 則是於定義的 Storage 中建立可供使用者使用的儲存空間。點選頁面左側的STORAGE下的Volumes,即可從頁面右側觀看該使用者所有可使用的 Volumes 列表,列表中可查看各 Volumes 的基本資訊。

  • Volume Name:此 Volume 的名稱。
  • Status:此 Volume 的狀態,此乃 Kubernetes 既有的資訊。
  • Mount:此 Volume 是否有被使用。
  • Access Mode:此 Volume 的存取模式,此乃 Kubernetes 既有的資訊。
  • Storage Class:此 Volume 是由哪個 Storage Class 所產生。
  • Auth:此 Volume 的權限,共有 user、project、public 三種類型。
    • user:該使用者專用。若 Storage Class 為 NFS,則該 Volume 可跨專案使用。
    • project:該專案下的所有使用者皆可使用。
    • public:所有專案下的所有使用者皆可使用。只有當 Storage Class 為 NFS 時才可建立。
  • Action:可編輯 Volume 的 Default Container Mount DirectoryDescriptionvolume overview

儲存卷資訊#

點選列表中的任一 Volumes,即可從下方看到該 Volumes 的細部資訊。

Volume Info中呈現的是關於此 Volume 相關的資訊。 volume detail 1

Mounted Container中呈現的是有使用到此 Volume 的容器列表。 volume detail 2

建立儲存卷#

透過點選Create Volume,即可進入建立 Volume 的表單中。系統管理員於admin專案下建立的 Volume,其 Auth 皆為public。

在表單的Basic Info,可輸入Volume NameDescriptionProject Volume

  • Volume Name:即此 Volume 的名稱。
  • Description:即此 Volume 的額外描述。 volume create basic info

在表單的Storage Class,可選擇此 Volume 所使用的Storage Class與SubPath。

  • Storage Class:以下拉式選單選擇使用者有權限使用的 Storage Class。
  • SubPath:為系統管理員專用的參數,目的是將同一個 Volume 以不同的子目錄的方式,掛載給不同的使用者。SubPath有許多變數可供定義,可點選!取得更多資訊。 volume create storage class

在表單的Volume Setting,可設定 Volume 的細部規格,包含Access ModeCapacityDefault Container Mount DirectoryDefault Volume

  • Access Mode:該 Volume 的存取模式。有 ReadWriteMany、ReadWriteOnce 和 ReadOnlyMany 三種模式,所選擇的模式必須是 Storage Class 所支援的模式。
  • Capacity:該 Volume 的大小。只有特定的 Storage Class 可確實限制 Volume 大小。
  • Default Container Mount Directory:該 Volume 預設掛載到容器的路徑。
  • Default Volume:該 Volume 是否為Defaul Volume。若為Default Volume,則當建立容器或容器工作時,會直接將該 Volume 加入。 volume create setting

當表單都填寫完成後,即可點選Submit來建立 Volume。

使用儲存卷#

建立好的 Volume 可在容器(Container)與容器工作(Container Job)中掛載使用。

以容器工作(Container Job)舉例,當我建立一個 Jobs 時,可在Storage Settings新增 Volume。使用者可透過Volume下拉式選單選擇符合自身權限的 Volume 掛載,並透過Mount Directory決定掛載到容器內的位置。若當初 Volume 設定為 Default Volume,則使用者無需額外設定,該 Volume 的參數就會存在。

use volume