Configuração avançada do agente

Este documento descreve opções avançadas de configuração do Serviço de transferência de dados locais, incluindo:

Como copiar dados em volumes CIFS ou SMB

Os agentes de transferência local não são diretamente compatíveis com servidores Windows. No entanto, é possível mover os dados armazenados em qualquer sistema de arquivos compatível com POSIX ativando-o em um servidor Linux ou máquina virtual (VM) e, em seguida, executando um agente do servidor Linux ou da VM para copiar seus dados para o Cloud Storage.

Para mover dados de um volume CIFS ou SMB:

  1. Provisione um servidor Linux ou VM.

    Para sistemas operacionais compatíveis, consulte Pré-requisitos.

  2. Execute o seguinte comando no servidor Linux ou na VM que você provisionou para ativar o volume:

    sudo mount -t cifs -o
    username=WINDOWS-SHARE-USER,password=WINDOWS-SHARE-PASSWORD //IP-ADDRESS/SHARE-NAME /mnt
    

    Substitua:

    • IP-ADDRESS: o endereço IP do servidor Microsoft Windows no qual o volume CIFS ou SMB está localizado.
    • SHARE-NAME: o nome do compartilhamento que você está ativando.
    • WINDOWS-SHARE-USER: um usuário autorizado para acessar o volume CIFS ou SMB.
    • WINDOWS-SHARE-PASSWORD: a senha do usuário autorizado para acessar o volume CIFS ou SMB.
  3. Confirme se o volume CIFS está ativado executando o seguinte comando:

    findmnt -l
    
  4. Confirme se o usuário que executará o agente pode listar e copiar arquivos no volume ativado executando os seguintes comandos:

    sudo -u USERNAME cp /mnt/FILE1 /mnt/FILE2
    

    Substitua:

    • USERNAME: usuário que executará o agente.
    • FILE1: o arquivo a ser copiado.
    • FILE2: nome do arquivo para onde copiar.
  5. Instale o agente de transferência local.

Como usar credenciais de conta de serviço

É possível usar as credenciais da conta de serviço para executar o agente. O uso de credenciais de conta de serviço é uma maneira de autenticar o agente de transferência sem depender de uma única conta de usuário. Para mais informações sobre os tipos de conta, consulte Principais.

Antes de usar as credenciais da conta de serviço com seus agentes, confirme se o Serviço de transferência de dados locais está pronto. Para isso, verifique se:

  1. Como configurar a transferência de dados locais.

  2. Existe um job de transferência.

Para usar as credenciais da conta de serviço com seus agentes:

  1. Interrompa todos os contêineres do agente

  2. Crie chaves de conta de serviço. Para mais informações, consulte Como criar e gerenciar chaves de conta de serviço.

  3. Inicie o contêiner do Docker do agente executando o comando a seguir:

    sudo docker run --ulimit memlock=64000000 -d --rm -v /:/transfer_root \
    gcr.io/cloud-ingest/tsop-agent:latest \
    --enable-mount-directory \
    --project-id=PROJECT-ID \
    --creds-file=CREDENTIAL-FILE \
    --hostname=$(hostname) \
    --agent-id-prefix=ID-PREFIX
    

    Substitua:

  • PROJECT-ID é o ID do projeto que hospeda a transferência e o local em que os recursos do Pub/Sub são criados e faturados.
  • CREDENTIAL-FILE é um arquivo de credencial da conta de serviço no formato JSON. Para mais informações sobre como gerar um arquivo de credencial da conta de serviço, consulte Como criar e gerenciar chaves da conta de serviço.
  • ID-PREFIX: o prefixo anexado ao ID do agente para ajudar a identificar o agente ou a máquina no Console do Google Cloud. Quando um prefixo é usado, o ID do agente é formatado como prefix + hostname + Docker container ID.

Como ajustar a memória máxima do agente

Por padrão, os serviços de transferência de agentes de dados locais usam no máximo 8 GiB de memória do sistema. É possível ajustar a memória máxima usada por eles para se adequar ao seu ambiente passando --max-physical-mem=MAXIMUM-MEMORY e substituindo MAXIMUM-MEMORY por um valor que seja ideal para você.

Veja a seguir os requisitos de memória para agentes do serviço de transferência de dados locais:
  • Memória mínima: 1 GiB
  • Memória mínima para compatibilidade com uploads de alto desempenho: 6 GiB

Recomendamos o padrão de 8 GiB.

A tabela a seguir descreve exemplos de formatos aceitáveis para MAXIMUM-MEMORY:

Valor de max-physical-memory Configuração máxima de memória
6g 6 gigabytes
6gb 6 gigabytes
6GiB 6 gibibytes

Como restringir o acesso ao diretório do agente

Para especificar diretórios que o agente pode acessar ao executar uma transferência, transmita -v HOST-DIRECTORY:CONTAINER-DIRECTORY para o agente, em que:

  • HOST-DIRECTORY é o diretório na máquina host de onde você pretende copiar.
  • CONTAINER-DIRECTORY é o diretório mapeado no contêiner do agente.

É possível usar mais de uma sinalização -v para especificar ainda mais os diretórios a serem copiados. Exemplo:

sudo docker run --ulimit memlock=64000000 -d -rm --volumes-from gcloud-config \
-v /usr/local/research:/usr/local/research \
-v /usr/local/billing:/usr/local/billing \
-v /tmp:/tmp \
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT-ID \
--hostname=$(hostname) \
--agent-id-prefix=ID-PREFIX

Se você estiver usando uma conta de serviço, certifique-se de ativar o arquivo de credenciais no contêiner e transmitir o --creds-file=CREDENTIAL-FILE. Exemplo:

sudo docker run --ulimit memlock=64000000 -d -rm \
-v HOST-DIRECTORY:CONTAINER-DIRECTORY \
-v /tmp:/tmp
-v FULL-CREDENTIAL-FILE-PATH:FULL-CREDENTIAL-FILE-PATH
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT-ID \
--creds-file=CREDENTIAL-FILE \
--hostname=$(hostname) \
--agent-id-prefix=ID-PREFIX

Substitua:

  • HOST-DIRECTORY: o diretório na máquina host que você pretende copiar.
  • CONTAINER-DIRECTORY: o diretório mapeado no contêiner do agente.
  • FULL-CREDENTIAL-FILE-PATH: o caminho totalmente qualificado para o arquivo de credenciais.
  • PROJECT-ID é o ID do projeto que hospeda a transferência e o local em que os recursos do Pub/Sub são criados e faturados.
  • CREDENTIAL-FILE é um arquivo de credencial da conta de serviço no formato JSON. Para mais informações sobre como gerar um arquivo de credencial da conta de serviço, consulte Como criar e gerenciar chaves da conta de serviço.
  • ID-PREFIX: o prefixo anexado ao ID do agente para ajudar a identificar o agente ou a máquina no Console do Google Cloud. Quando um prefixo é usado, o ID do agente é formatado como prefix + hostname + Docker container ID.

Como coordenar agentes com o Kubernetes

O Docker é um ambiente de execução de contêiner compatível com o Kubernetes. Use o Kubernetes para orquestrar a inicialização e a interrupção de vários agentes ao mesmo tempo. Da perspectiva do Kubernetes, o contêiner do agente é considerado um aplicativo sem estado. Portanto, siga as instruções do Kubernetes para implantar um aplicativo sem estado.

Como usar endpoints particulares de API no Cloud Interconnect

Para usar endpoints particulares de API no Cloud Interconnect:

  1. Faça login no host local onde você pretende executar o agente.

  2. Configure Acesso privado do Google. Se você quiser mais informações, consulte Como configurar o Acesso privado do Google para hosts locais.

  3. Confirme se você consegue se conectar às APIs do Cloud Storage e do Pub/Sub:

    1. Para APIs Cloud Storage, execute o comando a seguir na mesma máquina que o agente de transferência para testar mover um arquivo para o bucket do Cloud Storage: gsutil cp test.txt gs://MY-BUCKET, em que MY-BUCKETé o nome do bucket do Cloud Storage. Se a transferência funcionar, o teste foi bem-sucedido.
    2. Para APIs Pub/Sub, execute o comando a seguir na mesma máquina que o agente de transferência para confirmar que você consegue encontrar tópicos existentes do Pub/Sub: gcloud pubsub topics list --project=PROJECT-ID, em que PROJECT-ID é o nome do projeto do Google Cloud. Se uma lista de tópicos do Pub/Sub for exibida, o teste foi bem-sucedido.

Como usar um proxy de encaminhamento

Os agentes de Serviço de transferência de dados locais são compatíveis com o uso de um proxy de encaminhamento na sua rede ao passar a variável de ambiente HTTPS_PROXY.

Exemplo:

sudo docker run -d --ulimit memlock=64000000 --rm \
--volumes-from gcloud-config \
-v /:/transfer_root \
--env HTTPS_PROXY=PROXY\
gcr.io/cloud-ingest/tsop-agent:latest \
--enable-mount-directory \
--project-id=PROJECT-ID \
--hostname=$(hostname) \
--agent-id-prefix=ID-PREFIX

Substitua:

  • PROXY: o URL HTTP e a porta do servidor proxy. Especifique o URL HTTP e não um HTTPS, para evitar solicitações duplas na criptografia TLS. Essas solicitações impedem que o servidor proxy envie solicitações de saída válidas.
  • PROJECT-ID é o ID do projeto que hospeda a transferência e o local em que os recursos do Pub/Sub são criados e faturados.
  • ID-PREFIX: o prefixo anexado ao ID do agente para ajudar a identificar o agente ou a máquina no Console do Google Cloud. Quando um prefixo é usado, o ID do agente é formatado como prefix + hostname + Docker container ID.