Como adicionar o agente Node.js do APM Insight no Kubernetes via InitContainers?

Adicione o agente Node.js no Kubernetes via InitContainers (usando a imagem pré-criada do agente)

Para integrar o agente Node.js. do APM Insights a seus aplicativos do Kubernetes usando InitContainers, siga as instruções fornecidas abaixo:

Etapa 1:
Crie um volume vazio que será usado para copiar os arquivos do agente durante o processo initContainers.
Exemplo:
  1. volumes:
  2.    – nome: app-volume

Etapa 2:

Inclua o seguinte comando initContainers no seu arquivo de gráfico Helm/YAML de implantação.
  1. initContainers:
  2.       – nome: init-npm
  3.         imagem: site24x7/apminsight-nodejsagent:4.8.0
  4.         imagePullPolicy: IfNotPresent
  5.         comando: ['cp', '-r', '/opt/site24x7/.', '/apm']
  6.         volumeMounts:
  7.   – nome: app-volume
  8.     mountPath: /apm

Etapa 3:

Monte o volume criado na etapa 2 no contêiner do seu aplicativo.
Exemplo:
  1. contêineres:
  2.           env:
  3.             – nome: NODE_OPTIONS
  4.               valor: "--require /apm/node_modules/apminsight"
  5.             – nome: APMINSIGHT_LICENSE_KEY
  6.               valor: "<license-key>"
  7.             – nome: APMINSIGHT_APP_NAME
  8.               valor: "<application-name>"
  9.             – nome: APMINSIGHT_APP_PORT
  10.               valor: "<application-port>"
  11.          volumeMounts:
  12.             – mountPath: /apm   
  13.         nome: app-volume 

Notas
No caso de aplicativos que usam o gerente do processo PM2 em vez do Kubernetes, habilite o suporte ao PM2 ao adicionar o seguinte código na seção env do seu YAML de implantação:
  1. – nome: APMINSIGHT_PROCESS_MANAGER
  2.   valor: "true"

Exemplo de arquivo de implementação YAML para sua referência:
  1. apiVersion: apps/v1
  2. tipo: Implantação
  3. metadados:
  4.   nome: sample-deployment
  5. especificações:
  6.   réplicas: 1
  7.   seletor:
  8.     matchLabels:
  9.       aplicativo: sample-app
  10.   modelo:
  11.     metadados:
  12.       rótulos:
  13.         aplicativo: sample-app
  14.     especificações:
  15.       initContainers:
  16.       – nome: init-npm
  17.         imagem: site24x7/apminsight-nodejsagent:4.8.0
  18.         imagePullPolicy: IfNotPresent
  19.         comando: ['cp', '-r', '/opt/site24x7/.', '/apm']
  20.         volumeMounts:
  21.              – nome: app-volume
  22.                 mountPath: /apm

  23.       contêineres:
  24.         – nome: main-container
  25.           imagem: myrepository/sample-nodejs-app:latest
  26.           env:
  27.             – nome: NODE_OPTIONS
  28.               valor: "--require /apm/node_modules/apminsight"
  29.             – nome: APMINSIGHT_LICENSE_KEY
  30.               valor: "<license-key>"
  31.             – nome: APMINSIGHT_APP_NAME
  32.               valor: "<application-name>"
  33.             – nome: APMINSIGHT_APP_PORT
  34.               valor: "<application-port>"
  35.           volumeMounts:
  36.             – mountPath: /apm   
  37.               nome: app-volume
  38.       volumes:
  39.          – nome: app-volume 
  40.       emptyDir: {}