Menambahkan agen Node.js di Kubernetes melalui InitContainers (menggunakan image agen bawaan)
Untuk mengintegrasikan agen APM Insight Node.js ke dalam aplikasi Kubernetes Anda menggunakan InitContainers, ikuti langkah-langkah berikut:
Langkah 1:
Buat volume kosong yang akan digunakan untuk menyalin file agen selama proses InitContainers.
Contoh:
- volume:
- - name: app-volume
Langkah 2:
Masukkan perintah InitContainers berikut ke dalam file YAML bagan/deployment helm Anda.
- initContainers:
- - name: init-npm
- image: site24x7/apminsight-nodejsagent:4.8.0
- imagePullPolicy: IfNotPresent
- command: ['cp', '-r', '/opt/site24x7/.', '/apm']
- volumeMounts:
- - name: app-volume
- mountPath: /apm
Langkah 3:
Pasang volume yang dibuat pada langkah 2 ke dalam kontainer aplikasi Anda.
Contoh:
- containers:
- env:
- - name: NODE_OPTIONS
- value: "--require /apm/node_modules/apminsight"
- - name: APMINSIGHT_LICENSE_KEY
- value: "<license-key>"
- - name: APMINSIGHT_APP_NAME
- value: "<application-name>"
- - name: APMINSIGHT_APP_PORT
- value: "<application-port>"
- volumeMounts:
- - mountPath: /apm
- name: app-volume
Untuk aplikasi yang menggunakan manajer proses PM2 dan bukan Kubernetes, aktifkan dukungan PM2 dengan menambahkan perintah berikut di bagian env dari YAML deployment Anda:
- - name: APMINSIGHT_PROCESS_MANAGER
- value: "true"
Contoh file penerapan YAML untuk referensi Anda:
- apiVersion: apps/v1
- kind: Penempatan
- metadata:
- name: sample-deployment
- spec:
- replicas: 1
- selector:
- matchLabels:
- app: sample-app
- template:
- metadata:
- labels:
- app: sample-app
- spec:
- initContainers:
- - name: init-npm
- image: site24x7/apminsight-nodejsagent:4.8.0
- imagePullPolicy: IfNotPresent
- command: ['cp', '-r', '/opt/site24x7/.', '/apm']
- volumeMounts:
- - name: app-volume
- mountPath: /apm
- containers:
- - name: main-container
- image: myrepository/sample-nodejs-app:latest
- env:
- - name: NODE_OPTIONS
- value: "--require /apm/node_modules/apminsight"
- - name: APMINSIGHT_LICENSE_KEY
- value: "<license-key>"
- - name: APMINSIGHT_APP_NAME
- value: "<application-name>"
- - name: APMINSIGHT_APP_PORT
- value: "<application-port>"
- volumeMounts:
- - mountPath: /apm
- name: app-volume
- volumes:
- - name: app-volume
- emptyDir: {}