• 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

Operador de agente Kubernetes

visualização

Ainda estamos trabalhando nesse recurso, mas adoraríamos que você experimentasse!

O operador agente Kubernetes agiliza a observabilidade fullstack para ambientes Kubernetes automatizando a instrumentação APM junto com a implantação do agente Kubernetes . Ao habilitar a instrumentação automática APM , os desenvolvedores não precisam mais gerenciar manualmente o agente APM. O operador do agente Kubernetes instalará, atualizará e removerá automaticamente o agente APM.

Atualmente suporta Java, .NET, Node.js, Python e Ruby com linguagens adicionais (PHP e Go) a caminho.

Antes de você começar

Antes de instalar o operador, verifique o seguinte:

instalação da dependência cert-manager

Para instalar a dependência do gerenciador de certificados, execute estes comandos:

bash
$
helm repo add jetstack https://charts.jetstack.io
$
helm install cert-manager jetstack/cert-manager \
>
--namespace cert-manager \
>
--create-namespace \
>
--set crds.enabled=true

instalação do operador agente Kubernetes

Dependendo da sua necessidade, você pode optar por instalar o operador agente de forma independente ou em conjunto com nossa integração K8s. Recomendamos fortemente que você instale-o junto com a integração K8s para aproveitar nossa experiência de observação full stack .

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

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

O gráfico do operador do agente Kubernetes é integrado como 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 comando do helm ou inclua-o em um 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 comando 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=<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.image.tag=${KSM_IMAGE_VERSION} \
>
  --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 operador do agente Kubernetes com a configuração padrão, execute estes comandos:

bash
$
helm repo add newrelic-k8s https://newrelic.github.io/k8s-agents-operator
$
helm upgrade --install k8s-agents-operator newrelic-k8s/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 .

Configurando um namespace para ativar o operador

Cada namespace requer um processo de duas etapas para permitir a instrumentação automática do aplicativo implantado nele.

  1. Crie um segredo contendo uma chave de licença de ingestão válida New Relic para cada namespace que você deseja que o operador utilize.

    bash
    $
    kubectl create secret generic newrelic-key-secret \
    >
    --namespace <NAMESPACE_TO_MONITOR> \
    >
    --from-literal=new_relic_license_key=<YOUR_NEW_RELIC_INGEST_LICENSE_KEY>

    Certifique-se de substituir <YOUR_NEW_RELIC_INGEST_LICENSE_KEY> pela sua chave de licença válida do New Relic.

  2. Aplique o seguinte CRD a cada namespace que você deseja auto-instrumento. Execute este comando:

    bash
    $
    kubectl apply -f <YOUR_YAML_FILE> -n <NAMESPACE_TO_MONITOR>

    Arquivo YAML a ser aplicado:

    apiVersion: newrelic.com/v1alpha1
    kind: Instrumentation
    metadata:
    labels:
    app.kubernetes.io/name: instrumentation
    app.kubernetes.io/created-by: k8s-agents-operator
    name: newrelic-instrumentation
    spec:
    java:
    image: newrelic/newrelic-java-init:latest
    # env:
    # Example New Relic agent supported environment variables
    # - name: NEW_RELIC_LABELS
    # value: "environment:auto-injection"
    # Example overriding the appName configuration
    # - name: NEW_RELIC_POD_NAME
    # valueFrom:
    # fieldRef:
    # fieldPath: metadata.name
    # - name: NEW_RELIC_APP_NAME
    # value: "$(NEW_RELIC_LABELS)-$(NEW_RELIC_POD_NAME)"
    nodejs:
    image: newrelic/newrelic-nodejs-init:latest
    python:
    image: newrelic/newrelic-python-init:latest
    dotnet:
    image: newrelic/newrelic-dotnet-init:latest
    ruby:
    image: newrelic/newrelic-ruby-init:latest

Habilitar instrumentação automática APM no aplicativo

O operador do agente Kubernetes procura anotações específicas do idioma ao agendar seu pod para saber qual aplicativo monitor.

Veja as anotações atualmente suportadas:

bash
$
instrumentation.newrelic.com/inject-java: "true"
$
instrumentation.newrelic.com/inject-nodejs: "true"
$
instrumentation.newrelic.com/inject-python: "true"
$
instrumentation.newrelic.com/inject-dotnet: "true"
$
instrumentation.newrelic.com/inject-ruby: "true"

Veja este exemplo de implantação com anotação para instrumento do agente Java:

apiVersion: apps/v1
kind: Deployment
metadata:
name: spring-petclinic
spec:
  selector:
    matchLabels:
      app: spring-petclinic
  replicas: 1
  template:
    metadata:
      labels:
        app: spring-petclinic
      annotations:
        instrumentation.newrelic.com/inject-java: "true"
    spec:
      containers:
        - name: spring-petclinic
          image: ghcr.io/pavolloffay/spring-petclinic:latest
          ports:
            - containerPort: 8080
          env:
          - name: NEW_RELIC_APP_NAME
            value: spring-petclinic-demo

Atualize a instrumentação APM no aplicativo

Por padrão, o operador do agente Kubernetes instala automaticamente as versões mais recentes disponíveis do agente APM correspondente.

Depois que um aplicativo é monitorado, ele não é atualizado automaticamente para uma versão mais recente, a menos que o usuário opte por atualizar. Você pode atualizar facilmente o aplicativo para uma versão mais recente simplesmente reimplantando o pod ou reiniciando sua implantação.

Remover instrumentação APM no aplicativo

Para remover a instrumentação do APM em um aplicativo, você deve remover as anotações usadas pelo operador do agente Kubernetes. Em alguns segundos, você verá que o agente APM foi removido automaticamente.

Atualizando o operador do agente Kubernetes

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 operador do agente Kubernetes.

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

Desinstalando o operador do agente Kubernetes

Instalação do pacote

Desinstale o gráfico nri-bundle ou se desejar apenas remover o operador, 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 operador do agente Kubernetes, 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.

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 após a instalação do operador. Informamos que a operadora apenas auto-instrumentará o novo aplicativo para implantar no cluster.

  • Verifique se o segredo e o CRD de instrumentação estão instalados no namespace do aplicativo.

    bash
    $
    kubectl get secrets -n <NAMESPACE>
    $
    kubectl get instrumentation -n <NAMESPACE>
  • Verifique se o pod possui anotações que permitem a instrumentação automática.

    bash
    $
    kubectl get pod <POD> -n <NAMESPACE> -o jsonpath='{.metadata.annotations}'
  • Obtenha o log do pod do operador do agente.

    bash
    $
    kubectl logs <AGENT_OPERATOR_POD> -n newrelic
  • Verifique se o contêiner init foi injetado e executado com êxito dentro do pod do aplicativo.

    bash
    $
    kubectl describe pod <POD> -n <NAMESPACE>

Apoiar

O operador agente Kubernetes atualmente suporta a versão mais recente destes agentes APM: Java, .NET, Node.js, Python e Ruby.

Assim que o operador estiver em disponibilidade geral, as 3 versões mais recentes de cada agente APM serão suportadas.

Para problemas com o operador do agente Kubernetes:

Copyright © 2024 New Relic Inc.

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