安装与升级Flexvolume组件

创建阿里云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组件。更多信息,请参见存储CSI概述

  • 对于阿里云Kubernetes 1.16之前版本的集群,在创建集群时,若存储插件选择为Flexvolume,则控制台会默认安装Flexvolume组件。具体操作,请参见组件配置

安装Disk-Controller组件

  • 对于阿里云Kubernetes 1.16及之后版本的集群,不再支持Disk-Controller组件的安装,请使用CSI-Provisioner组件。更多信息,请参见CSI和Flexvolume存储插件的区别

  • 对于阿里云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. 登录容器服务管理控制台

  2. 在控制台左侧导航栏,单击集群

  3. 集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情

  4. 在集群管理详情页左侧导航栏,选择运维管理 > 组件管理

  5. 单击存储页签,在flexvolumealicloud-disk-controller组件区域单击升级

  6. 提示对话框中确认版本信息后单击确定

    升级成功后,对应组件区域会提示升级成功,且可查看组件当前版本。

  • Flexvolume组件升级时,以下场景请联系我们申请手动升级保障。

    • 在线升级失败。

    • Flexvolume组件版本不大于v1.12,且使用了云盘或OSS数据卷。

    • 集群业务敏感,且使用大量数据卷,希望提供升级保障。

  • Disk Controller组件升级失败时,请联系我们申请手动升级保障。

联系我们

若您需要申请手动升级保障,请您使用钉钉搜索钉钉群号35532895加入钉钉群咨询。