Commit Graph
29 Commits
Author SHA1 Message Date
Nahum Litvin a9d5caf7fc metadata: bound snapshotter Remove during garbage collection
The snapshot garbage collector holds the snapshotter write lock while
calling the underlying Snapshotter.Remove. cleanupSnapshotter also
detaches cancellation (context.WithoutCancel), so a Remove that never
returns - e.g. a proxy snapshotter whose RPC connection has wedged -
holds the write lock forever. Every subsequent snapshot operation on
the node then blocks behind the lock, including CRI RunPodSandbox,
turning the node into a permanent scheduling black hole while it still
reports Ready.

Observed in production with a proxy snapshotter (soci) that stopped
answering after a file-descriptor exhaustion storm: the GC goroutine
sat in WaitGroup.Wait for 4.5 hours with the Remove RPC parked in
waitOnHeader, and 17 CRI operations queued behind the metadata lock.

Bound each GC-path Remove with a timeout registered via pkg/timeout
(io.containerd.timeout.gc.snapshotter.remove, default 30m,
operator-tunable through config.toml like the other timeout keys). A
timed-out Remove returns DeadlineExceeded, which is not a
FailedPrecondition, so it propagates out of pruneBranch and ends the
pass: a globally wedged snapshotter costs one timeout per GC cycle
rather than one per orphaned snapshot, the deferred Cleanup is skipped
because the pass failed, and the snapshots left behind stay orphaned
for the next pass.

Signed-off-by: Nahum Litvin <nahuml@wix.com>
2026-08-20 08:56:02 -05:00
Samuel Karp 1a7d78e0b9 docs: correct default for [debug] address
The debug server plugin returns ErrSkipPlugin when its address is empty
and the default configuration emitted by 'containerd config default'
sets the address to an empty string.

Assisted-by: Claude Code (Opus 4.8)
Signed-off-by: Samuel Karp <samuelkarp@google.com>
2026-07-20 22:39:09 -07:00
Derek McGowan 5098311fb1 Update docs for version 4 server plugin configuration
Document the new server plugin configuration blocks for GRPC, TTRPC,
debug, and metrics. Mark the legacy top-level sections as deprecated.
Note that in version 4, the TTRPC plugin is configured independently
from GRPC and uses its own defaults when its plugin block is omitted.

Signed-off-by: Derek McGowan <derek@mcg.dev>
2026-04-21 18:03:10 -07:00
Ruihua Wen fb1f15d304 docs: correct the typo in the documentation
Signed-off-by: Ruihua Wen <spiffyeight77@gmail.com>
2024-05-02 02:04:24 +09:00
yanggang 7eccde5d03 Clean plugin indent in containerd-config.toml.5.md
Signed-off-by: yanggang <gang.yang@daocloud.io>
2024-01-23 07:02:07 +00:00
Avi Deitcher 76049170b8 document runtime and shim configuration and selection
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2023-11-06 08:59:36 +02:00
Oliver Radwell d8d63a7aa3 docs: Fix sample config.toml syntax
Signed-off-by: Oliver Radwell <oliver.radwell@gmail.com>
2022-07-16 21:56:07 +01:00
Mike Brown 6b35307594 Merge pull request #5490 from askervin/5Bu_blockio
Support for cgroups blockio
2022-04-29 10:07:56 -05:00
Antti Kervinen 10576c298e cri: support blockio class in pod and container annotations
This patch adds support for a container annotation and two separate
pod annotations for controlling the blockio class of containers.

The container annotation can be used by a CRI client:
  "io.kubernetes.cri.blockio-class"

Pod annotations specify the blockio class in the K8s pod spec level:
  "blockio.resources.beta.kubernetes.io/pod"
  (pod-wide default for all containers within)

  "blockio.resources.beta.kubernetes.io/container.<container_name>"
  (container-specific overrides)

Correspondingly, this patch adds support for --blockio-class and
--blockio-config-file to ctr, too.

This implementation follows the resource class annotation pattern
introduced in RDT and merged in commit 893701220.

Signed-off-by: Antti Kervinen <antti.kervinen@intel.com>
2022-04-29 11:44:09 +03:00
Akihiro Suda 195fc74244 docs: migrate config v1 to v2
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2022-04-05 16:41:54 +09:00
Akihiro Suda 84cebafe8f docs: remove deprecated io.containerd.runtime.v1.linux
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2022-04-05 16:13:42 +09:00
Oleg Atamanenko fdb746442b document log level and format
Signed-off-by: Oleg Atamanenko <oleg.atamanenko@gmail.com>
2022-03-15 21:00:58 -07:00
Markus Lehtonen eae14688c6 tasks: add Linux rdt support
Add support for configuring the Linux resctrl pseudo-filesystem with
goresctrl library. The functionality is integrated in the
"io.containerd.service.v1.tasks-service" plugin.

Signed-off-by: Markus Lehtonen <markus.lehtonen@intel.com>
2022-01-04 09:27:54 +02:00
Markus Lehtonen 3196e65f50 docs: document the runtime shim plugin config options
Add documentation for config options under
[plugins."io.containerd.runtime-shim.v2.shim"].

Signed-off-by: Markus Lehtonen <markus.lehtonen@intel.com>
2021-11-04 18:52:18 +02:00
Markus Lehtonen 0d8e07681f docs: use proper markdown lists in containerd-config.toml.5.md
Signed-off-by: Markus Lehtonen <markus.lehtonen@intel.com>
2021-11-04 18:45:41 +02:00
Phil Estes dc869b7855 Merge pull request #6125 from xens/update_doc_to_v2
Update doc to version 2 syntax
2021-10-28 10:20:17 -04:00
Romain Aviolat ebc5cf19ac feat(doc): update to version 2 syntax
Signed-off-by: Romain Aviolat <r.aviolat@gmail.com>
2021-10-21 19:06:47 +02:00
Romain Aviolat 3b73922fba feat(doc): add Core Scheduling documentation
Adding documentation for the Core Scheduling feature.

Signed-off-by: Romain Aviolat <r.aviolat@gmail.com>
2021-10-18 19:16:25 +02:00
Shengjing Zhu 5988bfc1ef docs: Various typo found by codespell
Signed-off-by: Shengjing Zhu <zhsj@debian.org>
2020-12-22 13:22:16 +08:00
Sebastiaan van Stijn ad090e67e9 man: move ctr.1, containerd-config to section 8, and fix generation
I missed this in my previous change: the ctr man page is also
in Section 8, because it's considered an administrative tool,
and containerd-config is related to containerd so updating these
as well.

This commit also fixes naming of the generated files, which was
hard-coded to .1.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-03 12:32:52 +02:00
Sebastiaan van Stijn 356782cb47 Makefile: man page: rename containerd.1 to containerd.8
The generated file was incorrectly named containerd.1 and should
be in section 8 (see [MAN-PAGES(7)]: Sections of the manual pages)

This patch fixes the filename and updates references to containerd(1)
to refer to containerd(8).

The generated file itself already had the correct section set in its
header, so didn't need updating.

[MAN-PAGES(7)]: http://man7.org/linux/man-pages/man7/man-pages.7.html

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-02 13:52:06 +02:00
Mihai Coman 5e6d56ee2d Fix startup_delay within default configuration
Without this patch, the containerd daemon fails to start using the
default configuration example:
containerd[37139]: containerd: time: missing unit in duration 100000000

Signed-off-by: Mihai Coman <mihai.cmn@gmail.com>
2020-01-29 15:34:23 +02:00
Lantao Liu aaccfcbe2b Fix containerd config dump.
Signed-off-by: Lantao Liu <lantaol@google.com>
2019-10-23 22:38:18 -07:00
Michael Crosby f3a5b8c0a9 Add command to generate man pages
The climan package has a command that can be registered with any urfav
cli app to generate man pages.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2019-09-11 15:31:02 -04:00
Maksym Pavlenko ea6c749e35 Update config doc
Signed-off-by: Maksym Pavlenko <makpav@amazon.com>
2019-08-23 11:08:25 -07:00
BoWen Yan d15a06b190 docs: Fix typo to some markdown files in /docs.
Signed-off-by: BoWen Yan <loneybw@gmail.com>
2019-06-13 15:29:12 +08:00
Shengjing Zhu fb80483711 docs: Add NAME section in all manpages
As described in https://lintian.debian.org/tags/manpage-has-bad-whatis-entry.html
each manual page should start with a "NAME" section.

Signed-off-by: Shengjing Zhu <zhsj@debian.org>
2019-02-22 23:40:28 +08:00
Aleksa Sarai 7aa132ffc7 docs: man: rename config.toml(5) to be more descriptive
The man page namespace is global, so in order to avoid colliding with
other man pages named "config.toml" rename ours to be more descriptive.
This also helps with discoverability (now tab-completion of 'man
containerd<tab>' will return the config man page), as well as making it
much cleaner from the perspective of distributions that want to package
containerd.

Signed-off-by: Aleksa Sarai <asarai@suse.de>
2018-08-08 18:33:29 +10:00
Phil Estes 8f183b5ee9 Add basic manpages for ctr, containerd, containerd-config
Adds initial manpages for ctr, containerd, and containerd config
commands, as well as the config.toml configuration file.

Adds targets to Makefile for generating and installing manpages.

Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
2018-02-14 15:17:31 -05:00