Instalar minion privado em contêiner (chamadas por minuto)
Importante
A partir de 26 de agosto de 2024, você não poderá mais criar novos monitores usando tempos de execução legados em locais públicos ou privados.
Em 22 de outubro de 2024, encerraremos a vida útil do minion privado conteinerizado (chamadas por minuto) e do legado runtime do Synthetics versões que ele suporta. Revise nossas etapas de migração recomendadas para evitar a degradação do seu monitor de localização privada.
As chamadas por minuto podem operar em ambiente de sistema de contêineres Docker ou em ambiente de sistema de orquestração de contêineres Kubernetes. As chamadas por minuto detectarão automaticamente seu ambiente para selecionar o modo de operação apropriado.
General minion recurso privado
Como as chamadas por minuto funcionam como um contêiner em vez de uma máquina virtual, elas oferecem muitos recursos:
Capacidade de aproveitar um contêiner Docker como um ambiente sandbox
Tempo limite de verificação do monitor personalizável
Módulos fornecidos personalizados para tipos monitor com script
Recurso específico do Kubernetes
Além disso, as chamadas por minuto entregam o seguinte recurso em ambiente Kubernetes:
Integra-se à API do Kubernetes para delegar o gerenciamento do ciclo de vida do tempo de execução ao Kubernetes
Não requer acesso privilegiado ao soquete Docker
Suporta cluster hospedado e local do Kubernetes
Suporta vários motores de contêiner, como Docker e Containerd
Implantável por meio de gráficos Helm, bem como YAMLs de configuração
Permite alocação de recursos baseada em trabalho (verificações de ping vs. não-ping) para gerenciamento ideal de recursos
Observabilidade oferecida através do cluster New Relic do Kubernetes Explorer
Requisito do sistema e compatibilidade
Para hospedar chamadas por minuto, seu sistema deve atender aos requisitos mínimos do ambiente de sistema escolhido.
Cuidado
Não modifique nenhum arquivo de chamadas por minuto. A New Relic não se responsabiliza por quaisquer modificações que você fizer. Para obter mais informações, entre em contato com seu representante de conta ou com um representante técnico de vendas da New Relic.
Medido pelo monitoramento de taxas de transferência de gravação para https://newrelic.com em uma instância AWS EC2 m5.xlarge com: AL2, classe de armazenamento gp2, volume raiz de 50 GiB, um Docker padrão chamadas por minuto install e 1 monitor por vez definido para frequência de 1 minuto. Ganhos de eficiência são esperados com a execução de vários monitores. Esses valores podem ser maiores ou menores que os seus, dependendo de muitos fatores.
Baseline para chamadas Docker por minuto é 0,5 IOPS sem nenhum trabalho de monitor em execução.
O docker chamadas por minuto não suporta docker Engine 26.0 ou superior devido a alterações significativas. clientes que buscam suporte docker 26+ devem migrar para o Sintético Job Manager
Cuidado
O Docker chamadas por minuto não foi projetado para uso com orquestradores de contêineres como AWS ECS, Docker Swarm, Apache Mesos, Azure contêiner instância, etc. Executar o Docker chamadas por minuto em um orquestrador de contêiner resultará em problemas inesperados porque ele próprio é um orquestrador de contêiner. Se você estiver usando orquestração de contêineres, consulte nossos requisitos de chamadas por minuto do Kubernetes.
Compatibilidade para
Requisitos
Sistema operacional
Linux kernel: 3.10 ou superior macOS: 10.11 ou superior
O contêiner Linux, incluindo o minion privado conteinerizado, só é executado em nós Linux K8s.
Processador
Uma CPU moderna e multi-core
Minion pod
CPU (vCPU/Core): 0,5 até 0,75 Memory: 800 Mi até 1.600 Mi
Os recursos alocados para um pod minion são configuráveis pelo usuário.
Pod de Runner
CPU (vCPU/Core): 0,5 até 1 Memory: 1.250 Mi até 3.000 Mi
Para uma verificação de API com script, serão solicitados 1.250 Mi com um limite de 2.500 Mi.
Para uma verificação simples do navegador ou do navegador com script, serão solicitados 2.000 Mi com um limite de 3.000 Mi.
Considerações adicionais:
Os recursos alocados para um pod do executor não são configuráveis pelo usuário.
A proporção máxima de recursos de solicitação de limite para CPU e memória é 2.
Tamanho do disco
Root volume: Um mínimo de 50 GiB (nó + PV) Persistent volume (PV): Mínimo de 20 GiB
Caso um PV ReadWriteOnce (RWO) seja fornecido ao minion, uma afinidade implícita de nó será estabelecida para garantir que o minion e o contêiner executor sejam escalonados no mesmo nó. Isso é necessário para permitir que o minion e os executores associados acessem o PV, já que um PV RWO pode ser acessado apenas por um único nó no cluster.
Medido pelo monitoramento de taxas de transferência de gravação para https://newrelic.com em um cluster AWS EKS 1.21 apoiado por um nó EC2 m5.xlarge em execução com: classe de armazenamento gp2, volume raiz de 50 GiB, 20 GiB PV/PVC com modo de acesso RWO , uma instalação padrão de chamadas do Kubernetes por minuto via Helm e 1 monitor por horário definido para frequência de 1 minuto. Ganhos de eficiência são esperados com a execução de vários monitores. Esses valores podem ser maiores ou menores que os seus, dependendo de muitos fatores.
Baseline para chamadas por minuto do Kubernetes é 3,0 IOPS sem nenhum trabalho de monitor em execução.
Sistema de arquivos em disco
NFSv4.1 ou superior (se estiver usando NFS)
Versão do Kubernetes
Recomendamos que seu cluster do Kubernetes suporte Kubernetes v1.15.
Cuidado
Para o Kubernetes v1.21 ou mais recente, use a versão Minion v3.0.61 ou mais recente.
Depois de agosto de 2022, descontinuaremos o suporte para vários recursos, incluindo nosso URL de gráfico Helm de minion privado original. Para obter mais detalhes, incluindo como você pode se preparar facilmente para essa transição, consulte nossa postagem no Fórum de suporte.
Para visualizar versões, dependência, valores padrão de quantos runner pods iniciam com cada minion, o modo de acesso ao volume persistente e muito mais, consulte Mostrar ajuda e exemplos abaixo.
Chave de localização privada
Antes de iniciar chamadas por minuto, você deve ter uma chave de localização privada. Suas chamadas por minuto usam a chave para se autenticar no New Relic e executar o monitoramento associado a essa localização privada.
Para encontrar a chave da localização privada existente:
No índice Private locations , localize a localização privada à qual você deseja que suas chamadas por minuto sejam atribuídas.
Observe a chave associada à localização privada com a chave ícone.
Dependência de sandbox e Docker
Sandboxing e Docker dependência são aplicáveis às chamadas por minuto em ambiente de sistema Docker container.
As chamadas por minuto rodam em Docker e são capazes de aproveitar Docker como uma tecnologia de sandbox. Isso garante o isolamento completo da execução do monitor, o que melhora a segurança, a confiabilidade e a repetibilidade. Cada vez que um script ou monitor de navegador é executado, as chamadas por minuto criam um novo contêiner Docker para executá-lo, chamado de runner.
O contêiner minion precisa ser configurado para se comunicar com o mecanismo Docker para gerar contêineres executores adicionais. Cada contêiner gerado é então dedicado a executar uma verificação associada ao monitor Sintético em execução na localização privada ao qual o contêiner minion está associado.
Existem duas dependências cruciais no lançamento. Para ativar o sandbox, certifique-se de que:
Seu diretório gravável e executável está montado em /tmp. O diretório gravável pode ser qualquer diretório no qual você queira que as chamadas por minuto sejam gravadas, mas a New Relic recomenda o próprio /tmp do sistema para facilitar as coisas.
Seu soquete UNIX Docker gravável é montado na variável de ambiente/var/run/docker.sock ou DOCKER_HOST. Para obter mais informações, consulte Opção de soquete Daemon do Docker.
Cuidado
A contagem de núcleos no host determina quantos contêineres runners as chamadas por minuto podem ser executadas simultaneamente no host. Como os requisitos de memória são dimensionados para a contagem esperada do contêiner do executor, recomendamos not running multiple CPMs on the same host para evitar contenção de recursos.
Instalar e atualizar versões de chamadas por minuto
Tanto a instalação quanto a atualização das chamadas por minuto usam o mesmo comando para extrair a imagem Docker mais recente do repositório Quay.io onde a imagem Docker chamadas por minuto está hospedada. Acesse quay.io/repository/newrelic/synthetics-minion para obter uma lista de todos os lançamentos.
A menos que hospede as imagens em um repositório de imagens local, as conexões com quay.io ou docker.io precisarão ser permitidas através do seu firewall para que docker extraia as imagens Sintético-minion e Sintético-minion-runner. A imagem "runner" é extraída automaticamente na inicialização do contêiner Sintético-minion. Consulte Configuração do ambiente Docker e Configuração do ambiente Kubernetes para obter detalhes sobre como definir um repositório local e o endpoint de registro do executor.
Inicie as chamadas por minuto
Para iniciar as chamadas por minuto, siga as instruções aplicáveis Docker ou do Kubernetes.
Execute o script apropriado para o seu sistema. Adapte os padrões comuns para /tmp e /var/run/docker.sock nos exemplos a seguir para corresponder ao seu sistema.
Quando uma mensagem semelhante a Synthetics Minion is ready and servicing location YOUR_PRIVATE_LOCATION_LABEL aparecer, suas chamadas por minuto estarão ativas e prontas para executar o monitor atribuído a esse local.
AVISO DE EOL
Depois de agosto de 2022, descontinuaremos o suporte para vários recursos, incluindo nosso URL de gráfico Helm de minion privado original. Para obter mais detalhes, incluindo como você pode se preparar facilmente para essa transição, consulte nossa postagem no Fórum de suporte.
Verifique se o pod minion está instalado e funcionando:
bash
$
kubectl get -n YOUR_NAMESPACE pods
Assim que o atributo status de cada pod for mostrado como running, suas chamadas por minuto estarão ativas e prontas para serem executadas no monitor atribuído à sua localização privada.
Pare ou apague as chamadas por minuto
Em um ambiente de sistema de contêiner Docker , use o procedimento Docker stop para interromper a execução das chamadas por minuto. Em um ambiente de sistema de orquestração de contêiner Kubernetes, use o procedimento Kubernetes delete para interromper a execução das chamadas por minuto.
Para chamadas por minuto no ambiente do sistema de orquestração de contêineres Kubernetes, os seguintes comandos Helm show podem ser usados para visualizar o chart.yaml e o values.yaml, respectivamente:
bash
$
helm show chart YOUR_REPO_NAME/synthetics-minion
bash
$
helm show values YOUR_REPO_NAME/synthetics-minion
Mostrar informações de licença
Para mostrar as informações de licenciamento do software de código aberto que utilizamos nas chamadas por minuto, execute o comando LICENSE .
Execute este comando para visualizar informações de licença para chamadas por minuto versões 2.2.27 ou superior:
bash
$
docker run quay.io/newrelic/synthetics-minion:latest LICENSE
Alguns de nossos softwares de código aberto estão listados sob diversas licenças de software e, nesse caso, listamos a licença que escolhemos usar. Nossas informações de licença também estão disponíveis em nossa documentação de licenças.
Configurar chamadas por minuto
Você pode configurar o minion privado em contêiner com módulos de nó personalizados, preservar dados entre lançamentos, usar variáveis de ambiente e muito mais. Para mais informações, consulte chamadas por minuto configuração.
Redes
Tanto para Docker quanto para Kubernetes, as chamadas por minuto e seu contêiner runner herdarão as configurações de rede do host. Para obter um exemplo disso em um ambiente de sistema de contêiner Docker , consulte o site Docker .
Uma nova rede de ponte é criada para cada contêiner executor. Isso significa que opções de comando de rede como --network e --dns passadas para as chamadas por minuto contêiner no lançamento (como por meio de comandos Docker run em um ambiente de sistema Docker contêiner) não são herdadas ou usadas pelos contêineres executores.
Quando essas redes são criadas, elas extraem do pool de endereços IP padrão configurado para o daemon. Para obter um exemplo disso em um ambiente de sistema de contêiner Docker , consulte o site Docker .
Normalmente, a rede do executor é removida após a conclusão da verificação. No entanto, se uma chamada por minuto sair enquanto uma verificação ainda estiver em execução, ou sair em outra circunstância inesperada, essas redes poderão ficar órfãs. Isso pode potencialmente usar o espaço de endereço IP disponível para o daemon Docker .
Se isso acontecer, você poderá ver INTERNAL ENGINE ERROR code: 31 entradas no registro de chamadas por minuto ao tentar criar um novo contêiner de executor. Para limpá-los apenas em ambientes de sistema de contêiner Docker , execute docker network prune.
Segurança, sandbox e execução como não-root
Por padrão, o software executado dentro de chamadas por minuto é executado com root privilégios de usuário. Isso é adequado para a maioria dos cenários, pois a execução ocorre em área restrita.
Em um ambiente de sistema Docker contêiner: Para alterar o perfil padrão do AppArmor usado pelos containers que chamadas por minuto geram para executar o monitor, consulte a variável de ambienteMINION_RUNNER_APPARMOR (chamadas por minuto versão 3.0.3 ou superior) ou MINION_DOCKER_RUNNER_APPARMOR (chamadas por minuto versão até v3.0.2).
Para executar as chamadas por minuto como usuário não root, são necessárias etapas adicionais:
Se o seu ambiente exigir que você execute as chamadas por minuto como um usuário não root, siga este procedimento. No exemplo a seguir, o usuário não root é my_user.
Certifique-se de que my_user possa usar o mecanismo Docker no host:
Verifique se my_user possui permissões de leitura/gravação para todos os diretórios e volumes passados para chamadas por minuto. Para definir essas permissões, use o comando chmod .
Obtenha o uid de my_user para uso no comando de execução: id -u my_user.
Cumpridas estas condições, utilize a opção "-u <uid>:<gid>" ao iniciar chamadas por minuto:
bash
$
docker run ... -u1002...
OU
bash
$
docker run ... -u1002-eDOCKER_HOST=http://localhost:2375 ...
Repositório de imagens Docker
Uma imagem Docker chamadas únicas por minuto atende tanto ao ambiente do sistema de contêineres Docker quanto ao ambiente do sistema de orquestração de contêineres Kubernetes. A imagem Docker está hospedada em quay.io. Para ter certeza de que sua imagem Docker está atualizada, consulte o repositório quay.io newrelic/Sintético-minion.
Considerações adicionais para ligações por minuto
Conexão
Descrição
Chamadas por minuto sem acesso à Internet
As chamadas por minuto podem funcionar sem acesso à internet, mas com algumas exceções. A verificação de integridade da Internet pública pode ser desativada usando as variáveis de ambiente denominadas MINION_NETWORK_HEALTHCHECK_DISABLED para um ambiente de sistema de contêiner Docker ou synthetics.minionNetworkHealthCheckDisabled para um ambiente de sistema de orquestração de contêiner Kubernetes. As chamadas por minuto precisam conseguir entrar em contato com o domínio "synthetics-horde.nr-data.net" . Isso é necessário para que ele reporte dados ao New Relic e receba o monitor para execução. Pergunte à administração da rede se isso é um problema e como configurar exceções.
Comunique-se com o Sintético através de um proxy
Para configurar a comunicação com o New Relic por proxy, use as variáveis de ambiente denominadas MINION_API_PROXY*.
Argumentos aprovados no lançamento
Isso se aplica apenas a um ambiente de contêiner Docker . Os argumentos passados para as chamadas por minuto contêiner no lançamento não são repassados para os contêineres gerados pelas chamadas por minuto. Docker não tem conceito de "herança" ou "hierarquia" de contêineres, e não copiamos a configuração que é passada das chamadas por minuto para o contêiner em execução no monitor. A única configuração compartilhada entre eles é aquela definida no nível do daemon do Docker .