コンテンツにスキップ

Containerd@仮想化

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. Containerdの仕組み


02. 設定ファイル

Containerdはデーモンとして稼働させる必要があるため、ユニットファイルで実行を定義する。

[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target

[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/containerd

Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5
LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=infinity
TasksMax=infinity
OOMScoreAdjust=-999

[Install]
WantedBy=multi-user.target


03. コマンド


04. ログ

形式

Containerdは、テキスト形式ログを作成する。

ログメッセージの箇所が文字列またはJSONの場合がある。


ログメッセージの構造

▼ 文字列

ログメッセージの箇所が文字列の場合は、以下の通りである。

2021-12-17T08:03:23.918838346+09:00 stderr F 2021/12/17 08:03:23 [INFO] start worker processes

▼ JSON

ログメッセージの箇所がJSONの場合は、以下の通りである。

# わかりやすいように改行している。
2023-03-16T19:48:25.824524924+09:00 stderr F {
  "addr": "*.*.*.*:9000",
  "caller": "cluster.go:461",
  "component": "cluster",
  "err": "This is ERROR",
  "level": "error",
  "msg": "refresh",
  "result": "failure",
  "ts": "2023-03-16T10:48:25.824Z"
}


Dockerのログとの比較

Dockerは、JSON形式をログを作成する。

{
 "log":"2021/12/17 08:03:23 [INFO] start worker processes",
 "stream":"stdout",
 "time":"2021-12-16T23:32:06.226055453Z"
}