Após implantar a Custom Resource Definition (CRD) do DataCache, crie um DataCache para pré-baixar os dados necessários às suas cargas de trabalho, como modelos de treinamento de IA. Este tópico descreve os parâmetros de configuração de um DataCache e como criar, consultar e excluir esse recurso.
Pré-requisitos
Implante a CRD do DataCache no seu cluster. Para mais informações, consulte Implantar uma CRD do DataCache.
Criar um DataCache
Parâmetros
O arquivo YAML a seguir apresenta os parâmetros de configuração de um 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******
Os parâmetros são descritos abaixo:
apiVersion: Versão da API. O valor deve ser
eci.aliyun.com/v1alpha1.kind: Tipo de recurso. O valor deve ser
DataCache.-
metadata
name: Nome do DataCache.
-
spec
bucket: Bucket para armazenamento dos dados. O valor padrão é
default. Você pode personalizar esse valor. Não utilizeeci-system, pois é reservado para o Elastic Container Instance (ECI).path: Caminho onde os dados serão armazenados.
size: Tamanho do DataCache em GiB. O valor padrão é 20 GiB. Estime o tamanho necessário com base no volume real dos seus dados.
retentionDays: Número de dias para retenção do DataCache. O sistema exclui automaticamente os DataCaches expirados. Por padrão, os DataCaches são retidos indefinidamente.
-
dataSource: Fonte dos dados, que inclui o type (tipo) da fonte e as options (opções) de configuração.
Tipo
Descrição
Parâmetro
URL
URL
-
url: URL de onde os dados serão baixados. -
accessToken: Configure este parâmetro para autenticação ao baixar dados privados.
HuggingFace ou ModelScope
-
repoSource: Repositório de origem. Os valores válidos sãoModelScope/Model,ModelScope/DataSet,HuggingFace/ModeleHuggingFace/DataSet. Especifica se deve ser baixado um modelo ou um conjunto de dados do ModelScope ou HuggingFace. -
repoId: ID do modelo ou conjunto de dados. -
revision: Versão. O valor padrão émainoumaster. -
accessToken: Configure este parâmetro para autenticação ao baixar dados privados.
NAS
Sistema de arquivos NAS
-
server: Destino de montagem do sistema de arquivos NAS. -
path: Subdiretório a ser montado. Para sistemas de arquivos NAS Extreme, o caminho deve começar com/share, por exemplo,/share/path. -
vers: Versão do protocolo NFS para montar o sistema de arquivos NAS. Recomendamos a v3. Sistemas de arquivos NAS Extreme suportam apenas a v3. -
options: Opções de montagem. Recomendamos utilizar as opções sugeridas pelo serviço File Storage NAS, comonolock,tcp,noresvport.
OSS
Bucket do OSS
-
bucket: Nome do bucket do OSS. -
url: Endpoint do OSS. -
path: Subdiretório a ser montado em relação à raiz do bucket. O valor padrão é/. -
otherOpts: Parâmetros personalizados para montar o OSS. O formato é-o -o, por exemplo,-o max_stat_cache_size=0 -o allow_other. -
ramRole: Função RAM a ser usada para autorização.NotaÉ necessário criar uma função RAM e conceder permissões a ela. Para mais informações, consulte Criar uma função RAM para um serviço confiável da Alibaba Cloud e Conceder permissões a uma função RAM.
Ao criar a função, defina o Trusted Entity Type como Alibaba Cloud Service, o Role Type como Normal Service Role e o Trusted Service como Elastic Compute Service. Ao conceder permissões à função, selecione a política AliyunOSSFullAccess.
-
akId: AccessKey ID a ser usado para autorização direta. Para mais informações, consulte Obter um par de AccessKeys. -
akSecret: AccessKey Secret a ser usado para autorização direta. Para mais informações, consulte Obter um par de AccessKeys.
SNAPSHOT
snapshot
snapshotId: ID do snapshot. -
-
netConfig
securityGroupId: ID do grupo de segurança da instância ECI que gera o DataCache.
vSwitchId: ID do vSwitch da instância ECI que gera o DataCache.
Para baixar dados pela internet em um vSwitch sem gateway SNAT configurado, associe um EIP. Para isso, adicione os parâmetros relacionados ao EIP em
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 de um EIP existente a ser associado para baixar dados da internet. Utilize este parâmetro caso o vSwitch não possua um gateway SNAT configurado.
-
eipCreateParam: Parâmetros para criar e associar um novo EIP. Utilize-os quando o vSwitch especificado não tiver um gateway SNAT configurado e nenhum EIP existente estiver disponível.
bandwidth: Largura de banda do EIP. Unidade: Mbit/s. O valor padrão é 5 Mbit/s.
commonBandwidthPackage: ID de uma instância existente de Internet Shared Bandwidth a ser associada ao EIP. Para mais informações, consulte Internet Shared Bandwidth.
internetChargeType: Método de faturamento do EIP. Valores válidos:
PayByBandwidthePayByTraffic. Para mais informações, consulte Métodos de faturamento do EIP.publicIpAddressPoolId: ID do pool de endereços IP do qual o EIP é alocado. O recurso de pool de endereços IP não vem ativado por padrão. Para utilizá-lo, solicite a cota necessária no Quota Center. Para mais informações, consulte Pools de endereços IP.
ISP: Tipo de linha do EIP. Valores válidos:
BGP(padrão) eBGP_PRO. Para mais informações, consulte Tipos de linha do EIP.
Exemplos de configuração
Crie um arquivo YAML para o DataCache (por exemplo, datacache.yaml) e execute um comando kubectl para criá-lo.
-
Criar um DataCache
kubectl create -f datacache.yaml -
Atualizar um DataCache
kubectl apply -f datacache.yaml
URL
-
Baixar dados de uma 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****** -
Baixar um modelo do 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***
Gerenciar DataCaches
Ao consultar ou excluir um DataCache, utilize qualquer um dos nomes abaixo como nome do tipo de recurso:
edcdatacachedatacachesdatacaches.eci.aliyun.com
Consultar um DataCache
Após criar um DataCache, liste todos os DataCaches no cluster ou visualize os detalhes de um específico.
-
Listar todos os DataCaches no cluster
kubectl get edcAbaixo está um exemplo de saída. O status
Availableindica que o DataCache está pronto para uso.~$ 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 -
Visualizar os detalhes de um DataCache específico
kubectl describe edc <edc-name>A resposta de exemplo a seguir inclui informações básicas, metadados, configuração, status e eventos do 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
Excluir um DataCache
Cada DataCache corresponde a um snapshot, o que gera custos de armazenamento. Para evitar cobranças desnecessárias, exclua prontamente os DataCaches que não forem mais necessários.
Para excluir um DataCache, execute o seguinte comando:
kubectl delete edc <edc-name>