Un clúster de usuario creado con Google Distributed Cloud (solo software) para VMware tiene uno o varios objetos StorageClass, y uno de ellos se designa como StorageClass predeterminado. En esta página se muestra cómo definir la StorageClass predeterminada de un clúster de usuario. Para obtener más información, consulta Almacenamiento.
Esta página está dirigida a especialistas en almacenamiento que configuran y gestionan el rendimiento, el uso y los gastos del almacenamiento. Para obtener más información sobre los roles habituales y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud , consulta Roles y tareas de usuario habituales de GKE.
Buscar la clase de almacenamiento predeterminada
Lista de todos los StorageClasses:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get storageclasses
En el resultado, puedes ver qué StorageClass es el predeterminado. Por ejemplo, en el siguiente resultado, puedes ver que una clase de almacenamiento llamada standard-rwo
es la clase de almacenamiento predeterminada:
standard kubernetes.io/vsphere-volume standard-rwo (default) csi.vsphere.vmware.com
Cuando solicitas almacenamiento, puedes especificar un StorageClass. Si no especificas una StorageClass, se usará la StorageClass predeterminada. Por ejemplo, supongamos que creas un PersistentVolumeClaim que no especifica un StorageClass. El controlador de volumen cumplirá la reclamación según la clase de almacenamiento predeterminada.
Cambiar la clase de almacenamiento predeterminada
Como administrador de clústeres, puede que quieras cambiar la clase de almacenamiento predeterminada. A partir de ese momento, todas las solicitudes de almacenamiento que no especifiquen una StorageClass se completarán según la StorageClass que elijas. En esta sección se explica cómo cambiar el valor predeterminado.
Desplegar un nuevo sistema de almacenamiento
Implementa un nuevo sistema de almacenamiento y los componentes de software necesarios para integrar el nuevo mecanismo de almacenamiento con un clúster de Kubernetes. Por ejemplo, puede que tengas que instalar un controlador de CSI en el clúster.
Este paso depende del proveedor de almacenamiento que utilices. En el caso de los controladores de CSI, los proveedores deben proporcionar instrucciones para desplegar su controlador de CSI en un clúster de Kubernetes. La documentación de un controlador CSI también debe incluir los parámetros específicos del controlador que proporciones en tu StorageClass, incluido el nombre del provisionador.
Cuando crees un StorageClass para tu nuevo dispositivo, debes darle un nombre que haga referencia a sus propiedades (como "rápido" o "altamente replicado"), en lugar de al nombre del controlador o dispositivo específico que haya detrás. De esta forma, será más fácil tener políticas de almacenamiento coherentes en todos los clústeres y entornos.
Quitar la anotación predeterminada de la clase de almacenamiento predeterminada
Abre la clase de almacenamiento predeterminada en un editor de texto:
kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] edit storageclass \ DEFAULT_STORAGE_CLASS
En el editor de texto, quita la anotación
storageclass.kubernetes.io/is-default-class: "true"
. Cierra el editor de texto.
Para comprobar que se ha eliminado la anotación, introduce este comando:
kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] get storageclass \ DEFAULT_STORAGE_CLASS --output yaml
Crear un StorageClass
Crea un manifiesto para un nuevo StorageClass.
Incluye la anotación storageclass.kubernetes.io/is-default-class: "true"
.
Por ejemplo:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: annotations: storageclass.kubernetes.io/is-default-class: "true" ... name: my-storage-class ... parameters: ... provisioner: [MY_PROVISIONER] ...
Guarda el manifiesto como un archivo YAML y crea el nuevo StorageClass:
kubectl --kubeconfig [CLUSTER_KUBECONFIG] apply -f [MANIFEST_FILE]
donde [MANIFEST_FILE] es la ruta al archivo de manifiesto de tu nueva StorageClass.