全部產品
Search
文件中心

Container Service for Kubernetes:管理storage-operator組件

更新時間:Nov 16, 2024

為了進一步豐富儲存功能,例如儲存卷自動擴容、雲端硬碟變更配置、儲存資源監控等,ACK提供了多個儲存群組件,並通過storage-operator組件對這些儲存群組件的生命週期進行統一管理。您可以通過修改ConfigMap自訂storage-operator組件的配置資訊,完成各儲存群組件的部署與升級,降低研發和營運複雜性。

前提條件

已建立1.20及以上版本的ACK託管叢集ACK專有叢集,且儲存外掛程式類型為CSI,請參見建立叢集手動升級叢集

組件介紹

storage-operator在叢集中預設安裝,以Deployment的形式部署。storage-operator會基於自身鏡像的預設組件配置和ConfigMap的自訂群組件配置進行儲存群組件的部署與升級。

  1. 預設組件配置:storage-operator每個鏡像版本發布時,都有預設的儲存群組件設定檔。

  2. 通過ConfigMap自訂配置:storage-operator運行時,會掛載一個用於指定儲存群組件配置的ConfigMap檔案,並讀取該配置。您可以通過ConfigMap指定版本資訊、是否部署組件等配置。

  3. 整合配置:storage-operator會整合自訂配置和預設配置,綜合判斷是否部署與升級組件。

storage-operator會優先使用自訂的組件配置,當不存在自訂配置時,再使用預設配置。

目前,storage-operator預設包含儲存群組件如下。

  • storage-cnfs:負責CNFS提供的相關功能。

  • storage-controller:負責雲端硬碟變更配置、跨可用性區域遷移等。

  • storage-auto-expander:負責儲存卷的自動擴容。

  • storage-monitor:提供儲存資源監控的可觀測能力。

配置組件資訊

鏡像預設配置

每個版本的storage-operator都有預設的組件配置。以v1.31.1版本為例,配置樣本如下。

{
  "storage-auto-expander": {
    "install": "true",
    "type": "deployment",
    "imageTag": "v1.31.1",
    "imageRep": "acs/storage-auto-expander",
    "crdTmpl": "/acs/templates/storage-auto-expander/crd.yaml",
    "template": "/acs/templates/storage-auto-expander/install.yaml"
  },
  "storage-monitor": {
    "install": "true",
    "type": "deployment",
    "imageTag": "v1.31.1",
    "imageRep": "acs/storage-monitor",
    "template": "/acs/templates/storage-monitor/install.yaml",
    "svcTmpl": "/acs/templates/storage-monitor/service.yaml"
  },
  "storage-cnfs": {
    "install": "true",
    "type": "deployment",
    "imageTag": "v1.24.39-0e24b92-aliyun",
    "imageRep": "acs/storage-cnfs",
    "crdTmpl": "/acs/templates/storage-cnfs/crd.yaml",
    "template": "/acs/templates/storage-cnfs/install.yaml"
  },
  "storage-controller": {
    "install": "true",
    "type": "deployment",
    "imageTag": "v1.31.1",
    "imageRep": "acs/storage-controller",
    "template": "/acs/templates/storage-controller/install.yaml"
  }
}

預設配置中各組件定義的參數說明如下。

參數

說明

install

該組件是否需要部署,預設為false

imageTag

如部署該組件,預設使用的鏡像版本。

imageRep

如部署該組件,預設使用的鏡像名。

crdTmpl

是否需要部署CRD,該值表示CRD模板地址。為空白時表示不部署CRD。

svcTmpl

是否需要部署Service,該值表示Service模板地址。

template

該組件的部署模板地址。

通過ConfigMap進行自訂配置

你可以通過ConfigMap自訂storage-operator的預設組件配置。自訂配置將覆蓋預設配置中的對應值。

  • 部署配置參數,如上文鏡像預設配置所示,定義了該組件是否部署、部署版本資訊等資訊。storage-operator根據這些參數進行組件的安裝、升級。

  • 其餘參數配置了對應組件的環境變數。例如,在下方樣本中,SNAPSHOT_INTERVAL欄位為storage-snapshot-manager的環境變數。

kind: ConfigMap
apiVersion: v1
metadata:
  name: storage-operator
  namespace: kube-system
data:
  storage-snapshot-manager: |
    {
      "install": "true",
      "imageTag": "v1.16.aaaa",
      "imageRep": "acs/storage-snapshot-manager",
      "template": "/acs/templates/storage-snapshot-manager/install.yaml",
      "SNAPSHOT_INTERVAL": "30"
    }
  storage-analyzer: '{"install": "false"}'

管理storage-operator組件

  • 如需驗證storage-operator是否成功啟動,可執行如下命令查看。

    kubectl get pods -n kube-system -lapp=storage-operator

    預期輸出:

    NAME                                READY   STATUS    RESTARTS   AGE
    storage-operator-57bdfd7f56-kl86k   1/1     Running   0          12m
  • 如需升級組件版本,請參見以下流程。關於組件的變更記錄,請參見storage-operator

    1. 登入Container Service管理主控台,在左側導覽列選擇叢集

    2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇營運管理 > 組件管理

    3. 定位storage-operator,根據頁面提示完成組件的升級。