當集羣中有多個storageclass時,一般需要指定一個默認的sc,這樣可以自動的選擇一個進行創建pvc。
To enable dynamic storage provisioning based on storage class, the cluster administrator needs to enable the DefaultStorageClass admission controller on the API server. This can be done, for example, by ensuring that DefaultStorageClass is among the comma-delimited, ordered list of values for the --enable-admission-plugins flag of the API server component. For more information on API server command-line flags, check kube-apiserver documentation.
1、需要添加—DefaultStorageClass參數
--enable-admission-plugins=ServiceAccount,NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota,DefaultStorageClass
2、1.9版本之前是–admission-control來控制,之後的就需要改用 --enable-admission-plugins 來控制。所以也一起修改
基於此,我們調整如下
3、最後,我們需要手動打上default storageclass標籤,
操作如下:
-[appuser@chenqiang-dev ~]$ kubectl get sc
NAME PROVISIONER AGE
csi-cephfs cephfs.csi.ceph.com 262d
csi-rbd rbd.csi.ceph.com 120d
-[appuser@chenqiang-dev ~]$ kubectl patch storageclass csi-rbd -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}’
-[appuser@chenqiang-dev ~]$ kubectl get sc
NAME PROVISIONER AGE
csi-cephfs cephfs.csi.ceph.com 262d
csi-rbd (default) rbd.csi.ceph.com 120d