본문으로 건너뛰기

이미지재빌드없이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 파일 예시
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 지정}}"
... (생략)