Cree back-ends con kubectl
Un back-end define la relación entre Astra Trident y un sistema de almacenamiento. Le indica a Astra Trident cómo se comunica con ese sistema de almacenamiento y cómo debe aprovisionar volúmenes a partir de él. Una vez instalado Astra Trident, el siguiente paso es crear un back-end. La TridentBackendConfig Custom Resource Definition (CRD) permite crear y gestionar back-ends de Trident directamente a través de la interfaz de Kubernetes. Para ello, utilice kubectl O la herramienta CLI equivalente para su distribución de Kubernetes.
TridentBackendConfig
TridentBackendConfig (tbc, tbconfig, tbackendconfig) Es un CRD con nombre y frontend que le permite administrar los back-ends de Astra Trident utilizando kubectl. Ahora, los administradores de Kubernetes y almacenamiento pueden crear y gestionar back-ends directamente a través de la CLI de Kubernetes sin necesidad de una utilidad de línea de comandos dedicada (tridentctl).
Sobre la creación de un TridentBackendConfig objeto, sucede lo siguiente:
-
Astra Trident crea automáticamente un back-end en función de la configuración que proporcione. Esto se representa internamente como un
TridentBackend(tbe,tridentbackend) CR. -
La
TridentBackendConfigestá vinculado de manera exclusiva a unTridentBackendEso fue creado por Astra Trident.
Cada uno TridentBackendConfig mantiene una asignación de uno a uno con un TridentBackend. El primero es la interfaz que se ofrece al usuario para diseñar y configurar los back-ends. El segundo es cómo Trident representa el objeto back-end real.
|
|
TridentBackend Astra Trident crea automáticamente CRS. Usted no debe modificarlos. Si desea realizar actualizaciones a los back-ends, modifique el TridentBackendConfig objeto.
|
Consulte el siguiente ejemplo para ver el formato del TridentBackendConfig CR:
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-ontap-san
spec:
version: 1
backendName: ontap-san-backend
storageDriverName: ontap-san
managementLIF: 10.0.0.1
dataLIF: 10.0.0.2
svm: trident_svm
credentials:
name: backend-tbc-ontap-san-secret
También puede echar un vistazo a los ejemplos de la "instalador de trident" directorio para configuraciones de ejemplo para la plataforma o servicio de almacenamiento que desee.
La spec toma parámetros de configuración específicos del back-end. En este ejemplo, el back-end utiliza el ontap-san controlador de almacenamiento y utiliza los parámetros de configuración que se tabulan aquí. Para obtener una lista de las opciones de configuración del controlador de almacenamiento que desee, consulte "información de configuración del back-end para el controlador de almacenamiento".
La spec la sección también incluye credentials y.. deletionPolicy campos, que se introducen recientemente en TridentBackendConfig CR:
-
credentials: Este parámetro es un campo obligatorio y contiene las credenciales utilizadas para autenticarse con el sistema/servicio de almacenamiento. Este juego debe ser un secreto de Kubernetes creado por el usuario. Las credenciales no se pueden pasar en texto sin formato y se producirá un error. -
deletionPolicy: Este campo define lo que debe suceder cuandoTridentBackendConfigse ha eliminado. Puede ser necesario uno de los dos valores posibles:-
delete: Esto resulta en la eliminación de ambosTridentBackendConfigCR y el back-end asociado. Este es el valor predeterminado. -
retain: Cuando unTridentBackendConfigSe elimina la CR, la definición de backend seguirá estando presente y se puede gestionar contridentctl. Establecimiento de la política de eliminación comoretainpermite a los usuarios degradar a una versión anterior (anterior a 21.04) y conservar los back-ends creados. El valor de este campo se puede actualizar después de unTridentBackendConfigse ha creado.
-
|
|
El nombre de un back-end se define mediante spec.backendName. Si no se especifica, el nombre del backend se establece en el nombre del TridentBackendConfig objeto (metadata.name). Se recomienda establecer explícitamente nombres de backend mediante spec.backendName.
|
|
|
Back-ends creados con tridentctl no tienen asociado TridentBackendConfig objeto. Se pueden optar por gestionar estos back-ends con kubectl mediante la creación de un TridentBackendConfig CR. Se debe tener cuidado para especificar parámetros de configuración idénticos (como spec.backendName, spec.storagePrefix, spec.storageDriverName, y así sucesivamente). Astra Trident enlazará automáticamente los recién creados TridentBackendConfig con el backend preexistente.
|
Descripción general de los pasos
Para crear un nuevo back-end mediante kubectl, debe hacer lo siguiente:
-
Cree un "Secreto Kubernetes". El secreto contiene las credenciales que Astra Trident necesita para comunicarse con el clúster/servicio de almacenamiento.
-
Cree un
TridentBackendConfigobjeto. Este contiene detalles sobre el servicio/clúster de almacenamiento y hace referencia al secreto creado en el paso anterior.
Después de crear un backend, puede observar su estado utilizando kubectl get tbc <tbc-name> -n <trident-namespace> y recopile detalles adicionales.
Paso 1: Cree un secreto de Kubernetes
Cree un secreto que contenga las credenciales de acceso para el back-end. Esto es único para cada servicio/plataforma de almacenamiento. A continuación, se muestra un ejemplo:
kubectl -n trident create -f backend-tbc-ontap-san-secret.yaml apiVersion: v1 kind: Secret metadata: name: backend-tbc-ontap-san-secret type: Opaque stringData: username: cluster-admin password: password
Esta tabla resume los campos que deben incluirse en el secreto para cada plataforma de almacenamiento:
| Descripción de los campos secretos de la plataforma de almacenamiento | Secreto | Descripción de los campos |
|---|---|---|
Azure NetApp Files |
ID del Cliente |
El ID de cliente de un registro de aplicación |
Cloud Volumes Service para GCP |
id_clave_privada |
ID de la clave privada. Parte de la clave API de la cuenta de servicio de GCP con el rol de administrador CVS |
Cloud Volumes Service para GCP |
clave_privada |
Clave privada. Parte de la clave API de la cuenta de servicio de GCP con el rol de administrador CVS |
Element (HCI/SolidFire de NetApp) |
Extremo |
MVIP para el clúster de SolidFire con credenciales de inquilino |
ONTAP |
nombre de usuario |
Nombre de usuario para conectarse al clúster/SVM. Se utiliza para autenticación basada en credenciales |
ONTAP |
contraseña |
Contraseña para conectarse al clúster/SVM. Se utiliza para autenticación basada en credenciales |
ONTAP |
ClientPrivateKey |
Valor codificado en base64 de la clave privada de cliente. Se utiliza para autenticación basada en certificados |
ONTAP |
ChapUsername |
Nombre de usuario entrante. Necesario si useCHAP=true. Para |
ONTAP |
InitichapatorSecret |
Secreto CHAP del iniciador. Necesario si useCHAP=true. Para |
ONTAP |
ChapTargetUsername |
Nombre de usuario de destino. Necesario si useCHAP=true. Para |
ONTAP |
ChapTargetInitiatorSecret |
Secreto CHAP del iniciador de destino. Necesario si useCHAP=true. Para |
El secreto creado en este paso será referenciado en el spec.credentials del TridentBackendConfig objeto creado en el paso siguiente.
Paso 2: Cree la TridentBackendConfig CR
Ya está listo para crear su TridentBackendConfig CR. En este ejemplo, un back-end que utiliza ontap-san el controlador se crea mediante TridentBackendConfig objeto mostrado a continuación:
kubectl -n trident create -f backend-tbc-ontap-san.yaml
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-ontap-san
spec:
version: 1
backendName: ontap-san-backend
storageDriverName: ontap-san
managementLIF: 10.0.0.1
dataLIF: 10.0.0.2
svm: trident_svm
credentials:
name: backend-tbc-ontap-san-secret
Paso 3: Compruebe el estado del TridentBackendConfig CR
Ahora que creó la TridentBackendConfig CR, puede comprobar el estado. Consulte el siguiente ejemplo:
kubectl -n trident get tbc backend-tbc-ontap-san NAME BACKEND NAME BACKEND UUID PHASE STATUS backend-tbc-ontap-san ontap-san-backend 8d24fce7-6f60-4d4a-8ef6-bab2699e6ab8 Bound Success
Se ha creado un backend correctamente y se ha enlazado a TridentBackendConfig CR.
La fase puede tomar uno de los siguientes valores:
-
Bound: LaTridentBackendConfigCR está asociado con un backend, y ese backend contieneconfigRefestablezca en laTridentBackendConfigEl uid de la CR. -
Unbound: Representado usando"". LaTridentBackendConfigel objeto no está enlazado a un back-end. Creadas recientementeTridentBackendConfigCRS se encuentra en esta fase de forma predeterminada. Tras cambiar la fase, no puede volver a «sin límites». -
Deleting: LaTridentBackendConfigCRdeletionPolicyse ha configurado para eliminar. Cuando laTridentBackendConfigLa CR se elimina y pasa al estado de supresión.-
Si no existen reclamaciones de volumen persistente (RVP) en el back-end, eliminando el
TridentBackendConfigComo resultado, Astra Trident elimina el back-end, así como elTridentBackendConfigCR. -
Si uno o más EVs están presentes en el backend, pasa a un estado de supresión. La
TridentBackendConfigPosteriormente, CR también entra en fase de eliminación. El back-end y.TridentBackendConfigSe eliminan sólo después de que se hayan eliminado todas las EVs.
-
-
Lost: El backend asociado conTridentBackendConfigLa CR se eliminó accidental o deliberadamente y laTridentBackendConfigCR todavía tiene una referencia al backend eliminado. LaTridentBackendConfigLa CR puede ser eliminada independientemente de ladeletionPolicyvalor. -
Unknown: Astra Trident no puede determinar el estado o la existencia del backend asociado conTridentBackendConfigCR. Por ejemplo, si el servidor API no responde o si eltridentbackends.trident.netapp.ioFalta CRD. Esto podría requerir la intervención del usuario.
En esta fase, se ha creado un backend. Hay varias operaciones que se pueden realizar además, como "actualizaciones back-end y eliminaciones backend".
(Opcional) Paso 4: Obtener más detalles
Puede ejecutar el siguiente comando para obtener más información acerca de su entorno de administración:
kubectl -n trident get tbc backend-tbc-ontap-san -o wide
NAME BACKEND NAME BACKEND UUID PHASE STATUS STORAGE DRIVER DELETION POLICY backend-tbc-ontap-san ontap-san-backend 8d24fce7-6f60-4d4a-8ef6-bab2699e6ab8 Bound Success ontap-san delete
Además, también puede obtener un volcado YLMA/JSON de TridentBackendConfig.
kubectl -n trident get tbc backend-tbc-ontap-san -o yaml
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
creationTimestamp: "2021-04-21T20:45:11Z"
finalizers:
- trident.netapp.io
generation: 1
name: backend-tbc-ontap-san
namespace: trident
resourceVersion: "947143"
uid: 35b9d777-109f-43d5-8077-c74a4559d09c
spec:
backendName: ontap-san-backend
credentials:
name: backend-tbc-ontap-san-secret
managementLIF: 10.0.0.1
dataLIF: 10.0.0.2
storageDriverName: ontap-san
svm: trident_svm
version: 1
status:
backendInfo:
backendName: ontap-san-backend
backendUUID: 8d24fce7-6f60-4d4a-8ef6-bab2699e6ab8
deletionPolicy: delete
lastOperationStatus: Success
message: Backend 'ontap-san-backend' created
phase: Bound
backendInfo contiene el backendName y la backendUUID del backend que se creó en respuesta a la TridentBackendConfig CR. La lastOperationStatus el campo representa el estado de la última operación de TridentBackendConfig CR, que se puede activar por el usuario (por ejemplo, el usuario ha cambiado algo en spec) O activado por Astra Trident (por ejemplo, durante el reinicio de Astra Trident). Puede ser un éxito o un fracaso. phase representa el estado de la relación entre el TridentBackendConfig CR y el back-end. En el ejemplo anterior, phase Tiene el valor enlazado, lo que significa que TridentBackendConfig CR está asociado con el backend.
Puede ejecutar el kubectl -n trident describe tbc <tbc-cr-name> comando para obtener detalles de los registros de eventos.
|
|
No puede actualizar ni eliminar un backend que contenga un archivo asociado TridentBackendConfig objeto con tridentctl. Comprender los pasos que implica cambiar entre tridentctl y.. TridentBackendConfig, "ver aquí".
|