メインコンテンツまでスキップ

イメージ再ビルドなしで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 지정}}"
... (생략)