全部產品
Search
文件中心

Container Service for Kubernetes:安裝與升級Flexvolume組件

更新時間:Jan 16, 2025

建立阿里雲Kubernetes 1.16之前版本的叢集時,若儲存外掛程式選擇為Flexvolume,則控制台預設安裝Flexvolume與Disk-Controller組件,但不會預設安裝alicloud-nas-controller組件。本文介紹如何對Flexvolume組件進行升級管理及如何安裝alicloud-nas-controller組件。

前提條件

注意事項

若叢集中部署了alicloud-nas-controller組件,在將叢集升級至Kubernetes 1.20版本之前需要將alicloud-nas-controller的鏡像升級到v1.14.8.17-7b898e5-aliyun或更高版本。

說明

如果您沒有使用阿里雲提供的alicloud-nas-controller組件,而是使用社區的相關方案(例如:nfs-provisioner),您需要到社區找到相應的升級方案來避免selfLink問題。

使用限制

目前支援CentOS 7、Alibaba Cloud Linux 2作業系統。

安裝組件

安裝Flexvolume組件

  • 對於阿里雲Kubernetes 1.16及之後版本的叢集,不再支援Flexvolume組件的安裝,請使用CSI-Plugin組件。更多資訊,請參見儲存

  • 對於阿里雲Kubernetes 1.16之前版本的叢集,在建立叢集時,若儲存外掛程式選擇為Flexvolume,則控制台會預設安裝Flexvolume組件。具體操作,請參見組件配置

安裝Disk-Controller組件

  • 對於阿里雲Kubernetes 1.16及之後版本的叢集,不再支援Disk-Controller組件的安裝,請使用CSI-Provisioner組件。更多資訊,請參見儲存

  • 對於阿里雲Kubernetes 1.16之前版本的叢集,在建立叢集時,若儲存外掛程式選擇為Flexvolume,則控制台會預設安裝Disk-Controller組件。具體操作,請參見組件配置

安裝alicloud-nas-controller組件

若您的叢集儲存外掛程式選擇為Flexvolume,可以通過手動部署alicloud-nas-controller方式實現動態NAS資料卷。

通過以下YAML模板手動安裝。

kind: Deployment
apiVersion: apps/v1
metadata:
  name: alicloud-nas-controller
  namespace: kube-system
spec:
  selector:
    matchLabels:
      app: alicloud-nas-controller
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: alicloud-nas-controller
    spec:
      tolerations:
      - operator: Exists
      affinity:
        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 1
            preference:
              matchExpressions:
              - key: node-role.kubernetes.io/master
                operator: Exists
      priorityClassName: system-node-critical
      serviceAccount: admin
      hostNetwork: true
      containers:
        - name: nfs-provisioner
          image: registry.cn-hangzhou.aliyuncs.com/acs/alicloud-nas-controller:v1.14.8.17-7b898e5-aliyun
          env:
          - name: PROVISIONER_NAME
            value: alicloud/nas
          securityContext:
            privileged: true
          volumeMounts:
          - mountPath: /var/log
            name: log
      volumes:
      - hostPath:
          path: /var/log
        name: log

驗證安裝

驗證Flexvolume、Disk-Controller與alicloud-nas-controller組件是否成功部署。

  • 執行以下命令,查看Flexvolume組件是否成功部署。

    kubectl get pod -nkube-system | grep flexvolume
  • 執行以下命令,查看Disk-Controller組件是否成功部署。

    kubectl get pod -nkube-system | grep alicloud-disk-controller
  • 執行以下命令,查看alicloud-nas-controller組件是否成功部署。

    kubectl get pod -nkube-system | grep alicloud-nas-controller

升級組件

Flexvolume與Disk Controller組件支援在控制台升級,alicloud-nas-controller組件不支援在控制台升級。

若阿里雲Kubernetes 1.16之前版本的叢集升級到1.16及之後版本,升級後的叢集仍支援Flexvolume儲存外掛程式,且可通過控制台進行升級。

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

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

  3. 單擊儲存頁簽,在flexvolumealicloud-disk-controller組件地區單擊升級

  4. 提示對話方塊中確認版本資訊後單擊確定

    升級成功後,對應組件地區會提示升級成功,且可查看組件目前的版本。

  • Flexvolume組件升級時,以下情境請提交工單申請手動升級保障。

    • 線上升級失敗。

    • Flexvolume組件版本不大於v1.12,且使用了雲端硬碟或OSS資料卷。

    • 叢集業務敏感,且使用大量資料卷,希望提供升級保障。

  • Disk Controller組件升級失敗時,請提交工單申請手動升級保障。