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:
- volumes:
- – nome: app-volume
Etapa 2:
Inclua o seguinte comando initContainers no seu arquivo de gráfico Helm/YAML de implantação.
- initContainers:
- – nome: init-npm
- imagem: site24x7/apminsight-nodejsagent:4.8.0
- imagePullPolicy: IfNotPresent
- comando: ['cp', '-r', '/opt/site24x7/.', '/apm']
- volumeMounts:
- – nome: app-volume
- mountPath: /apm
Etapa 3:
Monte o volume criado na etapa 2 no contêiner do seu aplicativo.
Exemplo:
- contêineres:
- env:
- – nome: NODE_OPTIONS
- valor: "--require /apm/node_modules/apminsight"
- – nome: APMINSIGHT_LICENSE_KEY
- valor: "<license-key>"
- – nome: APMINSIGHT_APP_NAME
- valor: "<application-name>"
- – nome: APMINSIGHT_APP_PORT
- valor: "<application-port>"
- volumeMounts:
- – mountPath: /apm
- nome: app-volume
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:
- – nome: APMINSIGHT_PROCESS_MANAGER
- valor: "true"
Exemplo de arquivo de implementação YAML para sua referência:
- apiVersion: apps/v1
- tipo: Implantação
- metadados:
- nome: sample-deployment
- especificações:
- réplicas: 1
- seletor:
- matchLabels:
- aplicativo: sample-app
- modelo:
- metadados:
- rótulos:
- aplicativo: sample-app
- especificações:
- initContainers:
- – nome: init-npm
- imagem: site24x7/apminsight-nodejsagent:4.8.0
- imagePullPolicy: IfNotPresent
- comando: ['cp', '-r', '/opt/site24x7/.', '/apm']
- volumeMounts:
- – nome: app-volume
- mountPath: /apm
- contêineres:
- – nome: main-container
- imagem: myrepository/sample-nodejs-app:latest
- env:
- – nome: NODE_OPTIONS
- valor: "--require /apm/node_modules/apminsight"
- – nome: APMINSIGHT_LICENSE_KEY
- valor: "<license-key>"
- – nome: APMINSIGHT_APP_NAME
- valor: "<application-name>"
- – nome: APMINSIGHT_APP_PORT
- valor: "<application-port>"
- volumeMounts:
- – mountPath: /apm
- nome: app-volume
- volumes:
- – nome: app-volume
- emptyDir: {}