• /
  • EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Anexação automática do Kubernetes APM

O auto-attach Kubernetes APM , anteriormente conhecido como operador do agente Kubernetes , agiliza a observabilidade full-stack para ambientes Kubernetes , automatizando a instrumentação APM junto com a implantação do agente Kubernetes . Ao ativar a instrumentação automática, os desenvolvedores não precisam mais gerenciar manualmente o agente APM. O Kubernetes APM auto-attach instalará, atualizará e removerá automaticamente o agente APM.

Atualmente ele suporta Java, .NET, Node.js, Python, Ruby e PHP.

Como funciona

  • O MutatingWebHook, após a instalação, torna-se envolvido na interceptação de solicitações API para implantar pod em nós.

  • Refletindo a configuração especificada, ele altera a especificação pod para adicionar um contêiner NR init e variáveis de ambiente.

  • Após o estabelecimento do pod, o agente New Relic APM é perfeitamente integrado ao aplicativo nele alojado.

Diagram showing how APM agents are auto injected

Antes de você começar

Antes de instalar o operador, verifique o seguinte:

instalação

Dependendo do que você precisa, você pode escolher instalar o Kubernetes APM auto-attach de forma independente ou junto com nossa integração Kubernetes .

Recomendamos fortemente instalá-lo junto com a integração Kubernetes para aproveitar toda a nossa experiência full-stackde observabilidade .

Instalação do pacote além da integração do Kubernetes (recomendado)

O gráfico de anexação automática do Kubernetes APM faz parte do gráfico nri-bundle , que gerencia a instalação de todos os componentes necessários para permitir uma observabilidade completa do Kubernetes.

Adicione o parâmetro k8s-agents-operator.enabled=true ao seu comando helm ou inclua-o no arquivo values.yaml . Consulte a página Instalar a integração do Kubernetes para obter mais informações sobre como usar o Helm ou confira o gráfico nri-bundle .

Veja este exemplo de comandos do Helm usando parâmetro:

bash
$
helm repo add newrelic https://helm-charts.newrelic.com
$
$
helm upgrade --install newrelic-bundle newrelic/nri-bundle \
>
--set global.licenseKey=YOUR_NEW_RELIC_INGEST_LICENSE_KEY \
>
--set global.cluster=CLUSTER_NAME \
>
--namespace=newrelic \
>
--set newrelic-infrastructure.privileged=true \
>
--set global.lowDataMode=true \
>
--set kube-state-metrics.enabled=true \
>
--set kubeEvents.enabled=true \
>
--set k8s-agents-operator.enabled=true \
>
--create-namespace

Instalação autônoma

Para instalar o Kubernetes APM auto-attach com a configuração padrão, execute estes comandos:

bash
$
helm repo add k8s-agents-operator https://newrelic.github.io/k8s-agents-operator
$
helm upgrade --install k8s-agents-operator k8s-agents-operator/k8s-agents-operator \
>
--namespace newrelic \
>
--create-namespace \
>
--set licenseKey=YOUR_NEW_RELIC_INGEST_LICENSE_KEY

Para obter uma lista completa de opções de configuração, consulte o gráfico README .

Configurar instrumentação automática

Depois que a conexão automática do APM estiver configurada no seu cluster, o próximo passo é implementar as configurações necessárias para deixá-lo operacional. Isso envolve ter pelo menos um Recurso Personalizado (CR) de instrumentação ativo no cluster.

Veja o que a instrumentação CR permite que você mapeie:

  • Nome da instrumentação CR
  • Onde aplicará a instrumentação CR (agradecimentos a podLabelSelector e namespaceLabelSelector)
  • Agente APM (um por CR)
  • Versão do agente APM
  • Parâmetro de configuração APM (env vars)
  • Chave de licença (opcional)

O arquivo manifesto precisa ser injetado no mesmo namespace (newrelic por padrão) onde você instalou o APM auto-attach.

bash
$
kubectl apply -f ./values.yaml -n newrelic

Como usar seletores

Para saber quando a instrumentação CR vai injetar o agente APM, precisamos usar seletores. Há 2 seletores de rótulos disponíveis que você pode usar juntos (eles funcionam como um operador lógico AND (&&)) ou separadamente, dependendo de suas necessidades.

  • PodLabelSelector informa ao APM Auto-attach qual pod precisa ser instrumentado.

    Exemplo usando matchLabel (pod select contendo uma tag e valor específicos):

    ...
    podLabelSelector:
    matchLabels:
    app.kubernetes.io/name: flask-hello-world
    ...
  • NameSpaceLabelSelector define no nível do namespace o pod auto-instrumentado.

    Exemplo usando matchExpressions (selecione namespace contendo uma tag e valor específicos):

    ...
    namespaceLabelSelector:
    matchExpressions:
    - key: "kubernetes.io/metadata.name"
    operator: "In"
    values: ["backend"]
    ...

    DICA

    Tenha em mente que aplicar o rótulo kubernetes.io/metadata.name é o mesmo que selecionar com base no nome do namespace.

Ambos os seletores suportam matchLabel e matchExpressions.

Agente APM

Você precisa especificar o agente APM e sua versão no CR de instrumentação. Recomendamos usar a versão mais recente para aproveitar os recursos mais recentes disponíveis.

Linguagem

Imagem

Versões disponíveis

dotnet

newrelic-dotnet-init:latest

.NET

java

newrelic-java-init:latest

Java

nodejs

newrelic-node-init:latest

python

newrelic-python-init:latest

Python

ruby

newrelic-ruby-init:latest

Ruby

php

newrelic-php-init:latest

PHP

Veja este exemplo:

...
spec:
agent:
language: dotnet
image: newrelic/newrelic-dotnet-init:latest
...

Parâmetro de configuração APM

A instrumentação CR fornece a capacidade de injetar variáveis de ambiente no pod para agilizar a configuração do agente APM. Veja este exemplo:

...
spec:
env:
# Example overriding the appName configuration by using a label of the pod
- name: NEW_RELIC_APP_NAME
valueFrom:
fieldRef:
fieldPath: metadata.labels['app.kubernetes.io/name']
...

No exemplo acima, mostramos como você pode configurar as configurações do agente globalmente usando variáveis de ambiente. Consulte a documentação de configuração de cada agente para obter as opções de configuração disponíveis:

Importante

Você pode injetar essas variáveis de ambiente no manifesto de implantação do aplicativo.

Chave de licença (opcional)

Ao instalá-lo, um é criado e é a licença padrão. Siga estas etapas se precisar enviar a telemetria do APM para uma conta diferente:

  • Para criar um segredo contendo uma nova chave de licença, execute este comando:

    bash
    $
    kubectl create secret generic newrelic-key-secret \
    >
    --namespace my-monitored-namespace \
    >
    --from-literal=new_relic_license_key=<NEW RELIC INGEST LICENSE KEY>
  • Para referenciar o segredo do CR de instrumentação, execute este comando:

    ...
    spec:
    licenseKeySecret: the-name-of-the-custom-secret
    ...

Exemplos de instrumentação CR

Atualizar instrumentação APM no aplicativo

Por padrão, a conexão automática do Kubernetes APM instala automaticamente a versão mais recente disponível do agente APM correspondente.

Depois que o monitoramento de um aplicativo é iniciado, ele não é atualizado automaticamente para uma versão mais recente, a menos que você opte por atualizar. Você pode atualizar o aplicativo reimplantando o pod ou reiniciando sua implantação.

Remover instrumentação APM no aplicativo

Para remover a instrumentação APM de um aplicativo, você deve alterar o seletor de rótulo correspondente dentro do podLabelSelector ou namespaceLabelSelector usado ou excluir o CR da instrumentação. Em seguida, reinicie a implantação. O processo de remoção leva apenas alguns segundos.

Atualizar o anexo automático do Kubernetes APM

Instalação do pacote

Execute uma atualização do gráfico nri-bundle com o seguinte parâmetro:

bash
$
k8s-agents-operator.enabled=true

Instalação autônoma

Execute o comando helm upgrade para atualizar para uma versão mais recente do Kubernetes APM auto-attach.

bash
$
helm upgrade k8s-agents-operator newrelic/k8s-agents-operator -n newrelic

Desinstalando o Kubernetes APM auto-attach

Instalação do pacote

Desinstale o gráfico nri-bundle ou, se quiser apenas remover a anexação automática do Kubernetes APM, execute uma atualização do helm com o seguinte parâmetro:

bash
$
k8s-agents-operator.enabled=false

Instalação autônoma

Para desinstalar e excluir o anexo automático do Kubernetes APM, execute este comando:

bash
$
helm uninstall k8s-agents-operator -n newrelic

Encontre e use dados

  • Obtenha insights do seu aplicativo e resolva incidentes usando a página de resumo APM.

  • Confira a página de resumo do Kubernetes . Ele fornece Kubernetes insights no contexto do seu aplicativo de monitor.

Certificados

O anexo automático do Kubernetes APM pode oferecer suporte a cert-manager , se preferir.

  • Execute este comando para instalar o gráfico Helm cert-manager :

    bash
    $
    helm install cert-manager jetstack/cert-manager \
    >
    --namespace cert-manager \
    >
    --create-namespace \
    >
    --set crds.enabled=true
  • No seu arquivo values.yaml , defina admissionWebhooks.autoGenerateCert.enabled: false e admissionWebhooks.certManager.enabled: true. Depois, instale o gráfico normalmente.

Lançamentos de gráficos disponíveis

Execute este comando para ver os gráficos disponíveis:

bash
$
helm search repo k8s-agents-operator

Perguntas frequentes

Resolução de problemas

Caso seu aplicativo não esteja instrumentado, você deverá verificar o seguinte:

  • Certifique-se de reimplantar ou implantar o novo aplicativo depois de instalar Kubernetes APM auto-attach. Observe que apenas novos aplicativos de auto-instrumento são implantados no cluster.

  • Execute este comando para verificar se o segredo está instalado no namespace do aplicativo:

    bash
    $
    kubectl get secrets -n NAMESPACE
  • Verifique se o pod possui os rótulos necessários que permitem a instrumentação automática por meio do CR ao usar podLabelSelector. Da mesma forma, verifique se o namespace tem os rótulos necessários ao usar namespaceLabelSelector dentro do CR.

    bash
    $
    kubectl get pod POD_NAME -n NAMESPACE -o jsonpath='{.metadata.annotations}'
  • Execute este comando para obter o log do de APM conexão automática pod:

    bash
    $
    kubectl logs AGENT_OPERATOR_POD -n newrelic
  • Execute este comando para garantir que o contêiner init foi injetado e executado com sucesso dentro do pod do aplicativo.

    bash
    $
    kubectl describe pod POD_NAME -n NAMESPACE

Como migrar de versões anteriores que exigiam anotações

A partir da versão 0.14, as anotações no manifesto de implantação do aplicativo não são mais necessárias para que o aplicativo seja autoinstrumentado.

É aconselhável desinstalar todas as versões anteriores à 0.14 e prosseguir com a instalação da versão mais recente. A utilização dos seletores de rótulos dentro da instrumentação CR permitirá a implantação precisa do agente APM, dispensando assim a necessidade de anotações.

Apoiar

O anexo automático do Kubernetes APM oferece suporte aos seguintes idiomas e suas versões mínimas suportadas de acordo com nossa política de suporte padrão ao agente APM:

  • Java: 8.12
  • .NET: 10,25
  • Ruby: 9,10
  • Node.js: 11.9
  • Python: 9.10
  • PHP: 11.12

Para quaisquer problemas:

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.