Après avoir déployé la définition de ressource personnalisée (CRD) DataCache, créez un DataCache pour précharger les données requises par vos charges de travail, telles que les modèles d'entraînement en IA. Cette rubrique décrit les paramètres de configuration d'un DataCache ainsi que les procédures de création, d'interrogation et de suppression.
Prérequis
Déployez la CRD DataCache dans votre cluster. Pour plus d'informations, consultez Déployer une CRD DataCache.
Créer un DataCache
Paramètres
Le fichier YAML suivant présente les paramètres de configuration d'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******
Les paramètres sont les suivants :
apiVersion : version de l'API. La valeur doit être
eci.aliyun.com/v1alpha1.kind : type de ressource. La valeur doit être
DataCache.-
metadata
name : nom du DataCache.
-
spec
bucket : compartiment de stockage des données. La valeur par défaut est
default. Vous pouvez personnaliser cette valeur. N'utilisez paseci-system, réservé à Elastic Container Instance (ECI).path : chemin de stockage des données.
size : taille du DataCache en GiB. La valeur par défaut est 20 GiB. Estimez la taille requise en fonction du volume réel de vos données.
retentionDays : durée de conservation du DataCache en jours. Le système supprime automatiquement les DataCaches expirés. Par défaut, les DataCaches sont conservés indéfiniment.
-
dataSource : source de données, incluant le type de source et les options de configuration.
Type
Description
Parameter
URL
URL
-
url: URL de téléchargement des données. -
accessToken: Configurez ce paramètre pour vous authentifier lors du chargement de données privées.
HuggingFace ou ModelScope
-
repoSource: référentiel source. Valeurs valides :ModelScope/Model,ModelScope/DataSet,HuggingFace/ModeletHuggingFace/DataSet. Indique s'il faut charger un modèle ou un jeu de données depuis ModelScope ou HuggingFace. -
repoId: ID du modèle ou du jeu de données. -
revision: version. La valeur par défaut estmainoumaster. -
accessToken: Configurez ce paramètre pour vous authentifier lors du chargement de données privées.
NAS
Système de fichiers NAS
-
server: point de montage du système de fichiers NAS. -
path: sous-répertoire à monter. Pour les systèmes de fichiers Extreme NAS, le chemin doit commencer par/share, par exemple/share/path. -
vers: version du protocole NFS pour le montage du système de fichiers NAS. Nous recommandons la v3. Les systèmes de fichiers Extreme NAS ne prennent en charge que la v3. -
options: options de montage. Nous recommandons d'utiliser les options suggérées par le service File Storage NAS, telles quenolock,tcp,noresvport.
OSS
Compartiment OSS
-
bucket: nom du compartiment OSS. -
url: endpoint OSS. -
path: sous-répertoire à monter par rapport à la racine du compartiment. La valeur par défaut est/. -
otherOpts: paramètres personnalisés pour le montage OSS. Le format est-o -o, par exemple-o max_stat_cache_size=0 -o allow_other. -
ramRole: rôle RAM à utiliser pour l'autorisation.RemarqueVous devez créer un rôle RAM et lui attribuer des autorisations. Pour plus d'informations, consultez Créer un rôle RAM pour un service Alibaba Cloud approuvé et Accorder des autorisations à un rôle RAM.
Lors de la création du rôle, définissez le type d'entité approuvée sur Alibaba Cloud Service, le type de rôle sur Normal Service Role et le service approuvé sur Elastic Compute Service. Lors de l'attribution des autorisations au rôle, sélectionnez la stratégie AliyunOSSFullAccess.
-
akId: AccessKey ID à utiliser pour l'autorisation directe. Pour plus d'informations, consultez Obtenir une paire de clés AccessKey. -
akSecret: AccessKey Secret à utiliser pour l'autorisation directe. Pour plus d'informations, consultez Obtenir une paire de clés AccessKey.
SNAPSHOT
snapshot
snapshotId: ID du snapshot. -
-
netConfig
securityGroupId : ID du groupe de sécurité pour l'instance ECI qui génère le DataCache.
vSwitchId : ID du vSwitch pour l'instance ECI qui génère le DataCache.
Pour charger des données via Internet sur un vSwitch sans passerelle SNAT configurée, associez une adresse IP élastique (EIP). Ajoutez pour cela les paramètres liés à l'EIP sous
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 : ID d'une EIP existante à associer pour le chargement de données depuis Internet. Utilisez ce paramètre si le vSwitch ne dispose pas de passerelle SNAT configurée.
-
eipCreateParam : paramètres permettant de créer et d'associer une nouvelle EIP. Utilisez-les si le vSwitch spécifié ne possède ni passerelle SNAT configurée ni EIP existante disponible.
bandwidth : bande passante de l'EIP. Unité : Mbit/s. La valeur par défaut est 5 Mbit/s.
commonBandwidthPackage : ID d'une instance Internet Shared Bandwidth existante à associer à l'EIP. Pour plus d'informations, consultez Internet Shared Bandwidth.
internetChargeType : méthode de facturation de l'EIP. Valeurs valides :
PayByBandwidthetPayByTraffic. Pour plus d'informations, consultez Méthodes de facturation des EIP.publicIpAddressPoolId : ID du pool d'adresses IP à partir duquel l'EIP est allouée. La fonctionnalité de pool d'adresses IP n'est pas activée par défaut. Pour l'utiliser, vous devez demander le quota requis dans Quota Center. Pour plus d'informations, consultez Pools d'adresses IP.
ISP : type de ligne de l'EIP. Valeurs valides :
BGP(par défaut) etBGP_PRO. Pour plus d'informations, consultez Types de lignes EIP.
Exemples de configuration
Créez un fichier YAML pour le DataCache (par exemple, datacache.yaml), puis exécutez une commande kubectl pour créer le DataCache.
-
Créer un DataCache
kubectl create -f datacache.yaml -
Mettre à jour un DataCache
kubectl apply -f datacache.yaml
URL
-
Charger des données depuis une 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****** -
Charger un modèle depuis 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***
Gérer les DataCaches
Lorsque vous interrogez ou supprimez un DataCache, utilisez l'un des noms suivants comme nom de type de ressource :
edcdatacachedatacachesdatacaches.eci.aliyun.com
Interroger un DataCache
Après avoir créé un DataCache, répertoriez tous les DataCaches du cluster ou affichez les détails d'un DataCache spécifique.
-
Répertorier tous les DataCaches du cluster
kubectl get edcVoici un exemple de sortie. Un statut
Availableindique que le DataCache est prêt à l'emploi.~$ 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 -
Afficher les détails d'un DataCache spécifique
kubectl describe edc <edc-name>La réponse d'exemple suivante inclut les informations de base, les métadonnées, la configuration, le statut et les événements du 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
Supprimer un DataCache
Chaque DataCache correspond à un snapshot, ce qui engendre des coûts de stockage. Pour éviter des frais inutiles, supprimez rapidement les DataCaches dont vous n'avez plus besoin.
Pour supprimer un DataCache, exécutez la commande suivante :
kubectl delete edc <edc-name>