本页面介绍如何为 GKE On-Prem 集群设置默认存储类别。另请参阅存储空间。
概览
GKE On-Prem 可以使用以下任何机制与块或文件存储进行集成:
在您创建集群时,GKE On-Prem 会创建一个名为 standard
的 StorageClass 对象。这是集群的默认 StorageClass。
如需查看 standard
StorageClass 的相关详情,请输入以下命令:
kubectl --kubeconfig [CLUSTER_KUBECONFIG] get storageclass standard --output yaml
其中,[CLUSTER_KUBECONFIG] 是集群的 kubeconfig 文件的路径。
在输出中,您可以看到 StorageClass 的名称为 standard
。您还可以看到 storageclass.kubernetes.io/is-default-class: "true"
注释。此注释会将名为 standard
的 StorageClass 识别为默认 StorageClass。
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: annotations: storageclass.kubernetes.io/is-default-class: "true" ... name: standard ... parameters: datastore: HOST2-DATASTORE2 diskformat: thin fstype: ext4 provisioner: kubernetes.io/vsphere-volume reclaimPolicy: Delete volumeBindingMode: Immediate
您的集群可以有多个 StorageClass 对象,但只有一个对象可以包含 storageclass.kubernetes.io/is-default-class: "true"
注释,因此是默认的 StorageClass。
在前面的输出中,您还可以看到预配工具是 kubernetes.io/vsphere-volume。这是在客户端请求类别为 standard
的部分存储时执行操作的预配工具。
默认 StorageClass
请求存储空间时,您可以指定 StorageClass。如果您未指定 StorageClass,则使用默认的 StorageClass。例如,假设您创建一个未指定 StorageClass 的 PersistentVolumeClaim。卷控制器将根据默认 StorageClass 完成声明。
更改默认 StorageClass
作为集群管理员,您可能需要更改默认存储类别。然后,系统会根据您选择的 StorageClass 来满足所有未指定 StorageClass 的存储空间请求。本部分介绍更改默认设置的步骤。
部署新的存储系统
部署新的存储系统以及所有软件组件,以便将新的存储机制与 Kubernetes 集群集成。例如,您可能需要将 CSI 驱动程序部署到集群。
此步骤取决于您所使用的存储供应商。供应商应提供部署说明。对于 CSI,供应商应提供有关将其 CSI 驱动程序部署到 Kubernetes 集群的说明。
从 standard
StorageClass 中移除默认注释
如需在文本编辑器中打开 standard
StorageClass 清单,请输入以下命令:
kubectl --kubeconfig [CLUSTER_KUBECONFIG] edit storageclass standard
在文本编辑器中,移除 storageclass.kubernetes.io/is-default-class: "true"
注释。关闭文本编辑器。
如需验证注释是否已被移除,请输入以下命令:
kubectl --kubeconfig [CLUSTER_KUBECONFIG] get storageclass standard --output yaml
创建新 StorageClass 对象
为新 StorageClass 对象创建清单。包含 storageclass.kubernetes.io/is-default-class: "true"
注释。例如:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: annotations: storageclass.kubernetes.io/is-default-class: "true" ... name: my-storage-class ... parameters: ... provisioner: [MY_PROVISIONER] ...
将清单保存为文件,并创建新 StorageClass 对象:
kubectl --kubeconfig [CLUSTER_KUBECONFIG] apply -f [MANIFEST_FILE]
其中,[MANIFEST_FILE] 是新的 StorageClass 清单文件的路径。