이미지재빌드없이init_Container를이용하는_방법
▶️ [exem-dotnet-agent] 설치 준비
1. 패키지 준비
EXEM-DOTNET-AGENT-inst_x.x.x.x.tgz이름으로 된 패키지를 준비합니다.- 파일 구성
- init 이미지 tar:
exem-dotnet-agent-inst_x.x.x.x.tar - configmap.yml : dotnet agent가 사용할 설정파일 (exem-dotnet-agent-config) 를 지정합니다.
- exem-dotnet-agent-config 파일 예시
- init 이미지 tar:
apiVersion: v1
kind: ConfigMap
metadata:
name: exem-dotnet-agent-config
namespace: {{namespace 지정}}
data:
net.conf: |
# 환경 변수로도 지정가능
EXEM_RECEIVER_ADDR={{수집서버 주소 지정}}
# default exem-dotnet-agent
# 환경 변수로도 지정가능
EXEM_DOTNET_AGENT_NAME=
# default default
# 환경 변수로도 지정가능
EXEM_GROUP_ID=
net.home: |
calltree.advice: |
#
# like this.
# classFullName:method signiture name
#
...(이하 생략)
2. exem-dotnet-agent 이미지 파일
- exem-dotnet-agent의 이미지 이름은 다음과 같은 규칙으로 생성됩니다.
exem-dotnet-agent-inst:x.x.x.x
- 이미지 구성
- exem-dotnet-agent 패키지가 설치된 상태로 이미지가 제공됩니다.
- /exem : exem-dotnet-agent 기동에 필요한 바이너리 및 설정, 로그 디렉토리 등이 포함되어 있습니다.
▶️ [exem-dotnet-agent] 설치
노트
- ◈ deploy yaml에 exem-dotnet-agent를 설치하기 위한 설정 값 추가가 필요합니다.
1. yaml 파일 예시
- 기존 고객의 yaml 파일에 하이라이트 된 부분을 추가합니다.
| spec: template: spec: volumes: ... (생략) # exem dotnet agent 설치 대상 볼륨 - name: exem-volume emptyDir: {} # dotnet agent 설정 파일 볼륨. dotnet agent는 동적적용 불가 옵션 및 advice 설정을 위해 ConfigMap을 볼륨으로 마운트해야 합니다. - name: config-volume-dotnet-agent configMap: # 마운트하려는 ConfigMap의 이름을 입력합니다. name: exem-dotnet-agent-config initContainers: - name: install-exem-dotnet-agent image: exem-dotnet-agent-inst:x.x.x imagePullPolicy: IfNotPresent command: ["/exem-inst-script/install-daemon.sh"] volumeMounts: - name: exem-volume mountPath: /exem - name: config-volume-dotnet-agent mountPath: /exem-config readOnly: true containers: - name: # application name ... (생략) volumeMounts: - name: exem-volume mountPath: /exem env: ... (생략) - name: EXEM_GROUP_ID value: "{{group id 지정}}" - name: EXEM_DOTNET_AGENT_NAME value: "{{agent name 지정}}" - name: EXEM_RUN_ON_CONTAINER value: "true" - name: EXEMWID valueFrom: fieldRef: fieldPath: metadata.uid - name: EXEM_DOTNET_HOME value: /exem/dotnet - name: CORECLR_ENABLE_PROFILING value: "1" - name: CORECLR_PROFILER value: "{cf0d821e-test-test-test-b283c45820dd}" - name: CORECLR_PROFILER_PATH value: "$(EXEM_DOTNET_HOME)/binary/Exem.DotNet.Profiler.so" - name: DOTNET_STARTUP_HOOKS value: "$(EXEM_DOTNET_HOME)/binary/startup/Exem.DotNet.Startup.Hook.dll" - name: EXEM_DOTNET_PROFILE_TARGET_PROCESS value: "{{모니터링 대상.dll 지정}}" ... (생략) |
|---|