Kubernetesにmackerel-container-agentをセットアップする

Kubernetesにおけるmackerel-container-agentのセットアップ手順です。

動作条件

Worker Nodeで動作するkubeletにおいて --read-only-port オプションが有効になっている必要があります(デフォルトでは有効)。 --read-only-port=0 と指定されている場合は無効となるので注意してください。

Pod Templateにコンテナを追加する

監視したいPod Templateにmackerel-container-agentコンテナを指定します。

項目
name mackerel-container-agent
image mackerel/mackerel-container-agent:latest
imagePullPolicy Always
resources.limits.memory 128Mi
env 下記参照

環境変数の設定

mackerel-container-agentでは環境変数の定義が必須となります。

  • MACKEREL_CONTAINER_PLATFORM: kubernetes
  • MACKEREL_APIKEY: Mackerel APIキー
  • MACKEREL_KUBERNETES_KUBELET_HOST:
valueFrom:
  fieldRef:
    fieldPath: status.hostIP
  • MACKEREL_KUBERNETES_NAMESPACE:
valueFrom:
  fieldRef:
    fieldPath: metadata.namespace
  • MACKEREL_KUBERNETES_POD_NAME:
valueFrom:
  fieldRef:
    fieldPath: metadata.name

以下の項目は任意で設定します。

  • MACKEREL_KUBERNETES_KUBELET_READ_ONLY_PORT: ポート番号
    • kubeletで--read-only-portフラグを指定してポート番号を変更している場合(デフォルト: 10255)
    • 0 を設定するとkubeletのread-only portの利用を中止します
  • MACKEREL_KUBERNETES_KUBELET_PORT: ポート番号
    • kubeletで--portフラグを指定してポート番号を変更している場合(デフォルト: 10250)

マニフェスト例

apiVersion: v1
kind: Pod
metadata:
  name: myapp
  labels:
    app: myapp
spec:
  containers:
  # ...
  - name: mackerel-container-agent
    image: mackerel/mackerel-container-agent:latest
    imagePullPolicy: Always
    resources:
      limits:
        memory: 128Mi
    env:
      - name: MACKEREL_CONTAINER_PLATFORM
        value: kubernetes
      - name: MACKEREL_APIKEY
        value: <Mackerel APIKey>
      - name: MACKEREL_KUBERNETES_KUBELET_HOST
        valueFrom:
          fieldRef:
            fieldPath: status.hostIP
      - name: MACKEREL_KUBERNETES_NAMESPACE
        valueFrom:
          fieldRef:
            fieldPath: metadata.namespace
      - name: MACKEREL_KUBERNETES_POD_NAME
        valueFrom:
         fieldRef:
            fieldPath: metadata.name

ロールやプラグインを利用する場合はこちらの「エージェント設定」も参照してください。

監視を開始する

mackerel-container-agentを追加したマニフェストをデプロイしてPodの監視を開始します。

動作しない場合はPodのログを参照してください。