建立阿里雲Kubernetes 1.16之前版本的叢集時,若儲存外掛程式選擇為Flexvolume,則控制台預設安裝Flexvolume與Disk-Controller組件,但不會預設安裝alicloud-nas-controller組件。本文介紹如何對Flexvolume組件進行升級管理及如何安裝alicloud-nas-controller組件。
前提條件
已建立ACK叢集。具體操作,請參見建立ACK託管叢集。
阿里雲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組件。更多資訊,請參見儲存。
對於阿里雲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儲存外掛程式,且可通過控制台進行升級。
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
單擊儲存頁簽,在flexvolume或alicloud-disk-controller組件地區單擊升級。
在提示對話方塊中確認版本資訊後單擊確定。
升級成功後,對應組件地區會提示升級成功,且可查看組件目前的版本。