Una vez que despliega la definición de recurso personalizado (CRD) de DataCache, puede crear un DataCache para descargar previamente los datos que requieren sus cargas de trabajo, como modelos de entrenamiento de IA. Este tema describe los parámetros de configuración de un DataCache, así como los procedimientos para crearlo, consultarlo y eliminarlo.
Requisitos previos
La CRD de DataCache debe estar desplegada en su clúster. Para obtener más información, consulte Deploy a DataCache CRD.
Crear un DataCache
Parámetros
El siguiente archivo YAML muestra los parámetros de configuración de un DataCache:
apiVersion: eci.aliyun.com/v1alpha1
kind: DataCache
metadata:
name: test-url
spec:
bucket: default
path: /demo/url
size: 20
retentionDays: 3
dataSource:
type: URL
options:
url: https://www.example.com
netConfig:
securityGroupId: sg-2ze63v3jtm8e6sy******
vSwitchId: vsw-2ze94pjtfuj9vaym******
Los parámetros son los siguientes:
apiVersion: La versión de la API. El valor debe ser
eci.aliyun.com/v1alpha1.kind: El tipo de recurso. El valor debe ser
DataCache.-
metadata
name: El nombre del DataCache.
-
spec
bucket: El bucket para almacenar los datos. El valor predeterminado es
default. Puede personalizar este valor. No utiliceeci-system, ya que está reservado para Elastic Container Instance (ECI).path: La ruta donde se almacenan los datos.
size: El tamaño del DataCache en GiB. El valor predeterminado es 20 GiB. Calcule el tamaño necesario según el volumen real de sus datos.
retentionDays: El número de días para conservar el DataCache. El sistema elimina automáticamente los DataCaches vencidos. De forma predeterminada, los DataCaches se conservan indefinidamente.
-
dataSource: El origen de datos, que incluye el type del origen y las options de configuración.
Tipo
Descripción
Parámetro
URL
URL
-
url: La URL desde la cual se descargan los datos. -
accessToken: Configure este parámetro para autenticarse al extraer datos privados.
HuggingFace o ModelScope
-
repoSource: El repositorio de origen. Los valores válidos sonModelScope/Model,ModelScope/DataSet,HuggingFace/ModelyHuggingFace/DataSet. Especifica si se extrae un modelo o un conjunto de datos de ModelScope o HuggingFace. -
repoId: El ID del modelo o conjunto de datos. -
revision: La versión. El valor predeterminado esmainomaster. -
accessToken: Configure este parámetro para autenticarse al extraer datos privados.
NAS
Sistema de archivos NAS
-
server: El destino de montaje del sistema de archivos NAS. -
path: El subdirectorio que se va a montar. Para sistemas de archivos NAS Extreme, la ruta debe comenzar con/share; por ejemplo,/share/path. -
vers: La versión del protocolo NFS para montar el sistema de archivos NAS. Se recomienda la versión 3. Los sistemas de archivos NAS Extreme solo admiten la versión 3. -
options: Las opciones de montaje. Se recomienda utilizar las opciones sugeridas por el servicio File Storage NAS, comonolock,tcp,noresvport.
OSS
Bucket de OSS
-
bucket: El nombre del bucket de OSS. -
url: El endpoint de OSS. -
path: El subdirectorio que se va a montar, relativo a la raíz del bucket. El valor predeterminado es/. -
otherOpts: Parámetros personalizados para montar OSS. El formato es-o -o; por ejemplo,-o max_stat_cache_size=0 -o allow_other. -
ramRole: El rol de RAM que se utiliza para la autorización.NotaDebe crear un rol de RAM y otorgarle permisos. Para obtener más información, consulte Create a RAM role for a trusted Alibaba Cloud service y Grant permissions to a RAM role.
Al crear el rol, establezca Trusted Entity Type en Alibaba Cloud Service, Role Type en Normal Service Role y Trusted Service en Elastic Compute Service. Al otorgar permisos al rol, seleccione la política AliyunOSSFullAccess.
-
akId: El AccessKey ID que se utiliza para la autorización directa. Para obtener más información, consulte Obtain an AccessKey pair. -
akSecret: El AccessKey Secret que se utiliza para la autorización directa. Para obtener más información, consulte Obtain an AccessKey pair.
SNAPSHOT
Instantánea
snapshotId: El ID de la instantánea. -
-
netConfig
securityGroupId: El ID del security group para la instancia ECI que genera el DataCache.
vSwitchId: El ID del vSwitch para la instancia ECI que genera el DataCache.
Para extraer datos a través de internet en un vSwitch sin una puerta de enlace SNAT configurada, puede vincular una EIP. Para ello, agregue los parámetros relacionados con la EIP debajo de
netConfig.netConfig: eipInstanceId: eip-2zey74a7zienoxf***** # Choose one: eipInstanceId or eipCreateParam eipCreateParam: # Choose one: eipInstanceId or eipCreateParam bandwidth: 5 commonBandwidthPackage: cbwp-2zeukbj916scmj5****** internetChargeType: PayByTraffic publicIpAddressPoolId: pippool-bp187arfugi543y1s**** ISP: BGPeipInstanceId: El ID de una EIP existente que se vincula para extraer datos de internet. Utilice este parámetro si el vSwitch no tiene una puerta de enlace SNAT configurada.
-
eipCreateParam: Parámetros para crear y vincular una nueva EIP. Utilícelos si el vSwitch especificado no tiene una puerta de enlace SNAT configurada y no hay ninguna EIP disponible.
bandwidth: El ancho de banda de la EIP. Unidad: Mbit/s. El valor predeterminado es 5 Mbit/s.
commonBandwidthPackage: El ID de una instancia de Internet Shared Bandwidth existente para asociar con la EIP. Para obtener más información, consulte Internet Shared Bandwidth.
internetChargeType: El método de facturación de la EIP. Valores válidos:
PayByBandwidthyPayByTraffic. Para obtener más información, consulte EIP billing methods.publicIpAddressPoolId: El ID del pool de direcciones IP desde el cual se asigna la EIP. La función de pool de direcciones IP no está habilitada de forma predeterminada. Para usar esta función, debe solicitar la cuota requerida en Quota Center. Para obtener más información, consulte IP address pools.
ISP: El tipo de línea de la EIP. Valores válidos:
BGP(predeterminado) yBGP_PRO. Para obtener más información, consulte EIP line types.
Ejemplos de configuración
Cree un archivo YAML para el DataCache (por ejemplo, datacache.yaml) y luego ejecute un comando de kubectl para crear el DataCache.
-
Crear un DataCache
kubectl create -f datacache.yaml -
Actualizar un DataCache
kubectl apply -f datacache.yaml
URL
-
Extraer datos de una URL
apiVersion: eci.aliyun.com/v1alpha1 kind: DataCache metadata: name: test-url-1 spec: path: /demo/url dataSource: type: URL options: url: https://www.example.com netConfig: securityGroupId: sg-2ze63v3jtm8e6sy****** vSwitchId: vsw-2ze94pjtfuj9vaym****** -
Extraer un modelo de HuggingFace
apiVersion: eci.aliyun.com/v1alpha1 kind: DataCache metadata: name: test-url-2 spec: path: /demo/url dataSource: type: URL options: repoSource: "HuggingFace/Model" repoId: "decapoda-research/llama-7b-hf" netConfig: securityGroupId: sg-2ze63v3jtm8e6sy****** vSwitchId: vsw-2ze94pjtfuj9vaym******
NAS
apiVersion: eci.aliyun.com/v1alpha1
kind: DataCache
metadata:
name: test-nas
spec:
path: /demo/nas
dataSource:
type: NAS
options:
server: "0389a***-nh**.cn-beijing.extreme.nas.aliyuncs.com"
path: "/"
vers: "3"
options: "nolock,tcp,noresvport"
netConfig:
securityGroupId: sg-2ze63v3jtm8e6sy******
vSwitchId: vsw-2ze94pjtfuj9vaym******
OSS
apiVersion: eci.aliyun.com/v1alpha1
kind: DataCache
metadata:
name: test-oss
spec:
path: /demo/oss
dataSource:
type: OSS
options:
bucket: "oss-***"
url: "oss-cn-beijing-internal.aliyuncs.com"
path: "/test"
otherOpts: "-o max_stat_cache_size=0 -o allow_other"
ramRole: "<your RAM Role Name>"
netConfig:
securityGroupId: sg-2ze63v3jtm8e6sy******
vSwitchId: vsw-2ze94pjtfuj9vaym******
Snapshot
apiVersion: eci.aliyun.com/v1alpha1
kind: DataCache
metadata:
name: test-snapshot
spec:
path: /demo/snapshot
dataSource:
type: SNAPSHOT
options:
snapshotId: s-uf6j98q2tvfcjz******
netConfig:
securityGroupId: sg-2ze63v3jtm8e6sy******
vSwitchId: vsw-2ze94pjtfuj9vaym***
Gestionar DataCaches
Al consultar o eliminar un DataCache, puede usar cualquiera de los siguientes nombres como nombre del tipo de recurso:
edcdatacachedatacachesdatacaches.eci.aliyun.com
Consultar un DataCache
Después de crear un DataCache, puede listar todos los DataCaches del clúster o ver los detalles de uno específico.
-
Listar todos los DataCaches del clúster
kubectl get edcA continuación se muestra un ejemplo de salida. Un estado
Availableindica que el DataCache está listo para usarse.~$ kubectl get datacache NAME AGE DATACACHEID STATUS PROGRESS BUCKET PATH test-snapshot 3m5s edc-2zef0yo3be9g8… Creating 27% default /demo/snapshot test-url-2 81m edc-2zehgoxuevp3er Available 100% default /demo/url -
Ver los detalles de un DataCache específico
kubectl describe edc <edc-name>La siguiente respuesta de ejemplo incluye la información básica, metadatos, configuración, estado y eventos del DataCache.
:~$ kubectl describe edc test-url-2 Name: test-url-2 Namespace: Labels: <none> Annotations: <none> API Version: eci.aliyun.com/v1alpha1 Kind: DataCache Metadata: Creation Timestamp: 2023-07-27T08:25:26Z Finalizers: eci.aliyun.com/datacachecontroller Generation: 1 Resource Version: 816839 UID: 70b90647-4915-45d5-a075-f0e3cf2fdcfb Spec: Bucket: default Data Source: Options: Repo Id: decapoda-research/llama-7b-hf Repo Source: HuggingFace/Model Type: URL Net Config: Security Group Id: sg-2zegwszw5xxx V Switch Id: vsw-2zeet2ksxxx Path: /demo/url Size: 20 Status: Data Cache Id: edc-2zehgoxuevpxxx Progress: 100% Snapshot Id: s-2zeib05j5bmxm:xxx Status: Available Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Creating 31m datacache-controller Creating dataCache in ECI Normal Creating 31m datacache-controller ECI status: Pending Normal Success 30m datacache-controller Create dataCache in ECI successfully
Eliminar un DataCache
Cada DataCache corresponde a una instantánea, lo cual genera costos de almacenamiento. Para evitar cargos innecesarios, elimine rápidamente los DataCaches que ya no necesite.
Para eliminar un DataCache, ejecute el siguiente comando:
kubectl delete edc <edc-name>