创建阿里云Kubernetes 1.16之前版本的集群时,若存储插件选择为Flexvolume,则控制台默认安装Flexvolume与Disk-Controller组件,但不会默认安装alicloud-nas-controller组件。本文介绍如何对Flexvolume组件进行升级管理及如何安装alicloud-nas-controller组件。
前提条件
已创建ACK集群。具体操作,请参见创建Kubernetes托管版集群。
阿里云Kubernetes集群存储插件为Flexvolume。
已通过kubectl连接Kubernetes集群。具体操作,请参见步骤二:选择集群凭证类型。
注意事项
若集群中部署了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存储插件,且可通过控制台进行升级。
登录容器服务管理控制台。
在控制台左侧导航栏,单击集群。
在集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情。
在集群管理详情页左侧导航栏,选择 。
单击存储页签,在flexvolume或alicloud-disk-controller组件区域单击升级。
在提示对话框中确认版本信息后单击确定。
升级成功后,对应组件区域会提示升级成功,且可查看组件当前版本。