為了進一步豐富儲存功能,例如儲存卷自動擴容、雲端硬碟變更配置、儲存資源監控等,ACK提供了多個儲存群組件,並通過storage-operator組件對這些儲存群組件的生命週期進行統一管理。您可以通過修改ConfigMap自訂storage-operator組件的配置資訊,完成各儲存群組件的部署與升級,降低研發和營運複雜性。
前提條件
組件介紹
storage-operator在叢集中預設安裝,以Deployment的形式部署。storage-operator會基於自身鏡像的預設組件配置和ConfigMap的自訂群組件配置進行儲存群組件的部署與升級。
預設組件配置:storage-operator每個鏡像版本發布時,都有預設的儲存群組件設定檔。
通過ConfigMap自訂配置:storage-operator運行時,會掛載一個用於指定儲存群組件配置的ConfigMap檔案,並讀取該配置。您可以通過ConfigMap指定版本資訊、是否部署組件等配置。
整合配置: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"
}
}
預設配置中各組件定義的參數說明如下。
參數 | 說明 |
| 該組件是否需要部署,預設為 |
| 如部署該組件,預設使用的鏡像版本。 |
| 如部署該組件,預設使用的鏡像名。 |
| 是否需要部署CRD,該值表示CRD模板地址。為空白時表示不部署CRD。 |
| 是否需要部署Service,該值表示Service模板地址。 |
| 該組件的部署模板地址。 |
通過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。
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
定位storage-operator,根據頁面提示完成組件的升級。