aa59280edc
When running at scale, it's possible that Docker Engine starts containers successfully but gets wedged in a way where API call fails. The Docker Engine may remain unavailable for arbitrary long time. Here, we introduce a periodic reconcilation process that ensures that any container started by nomad is tracked, and killed if is running unexpectedly. Basically, the periodic job inspects any container that isn't tracked in its handlers. A creation grace period is used to prevent killing newly created containers that aren't registered yet. Also, we aim to avoid killing unrelated containters started by host or through raw_exec drivers. The logic is to pattern against containers environment variables and mounts to infer if they are an alloc docker container. Lastly, the periodic job can be disabled to avoid any interference if need be. |
||
---|---|---|
.. | ||
cmd | ||
docklog | ||
test-resources/docker | ||
util | ||
config.go | ||
config_test.go | ||
coordinator.go | ||
coordinator_test.go | ||
driver.go | ||
driver_darwin_test.go | ||
driver_default.go | ||
driver_linux_test.go | ||
driver_pre09.go | ||
driver_test.go | ||
driver_unix_test.go | ||
driver_windows.go | ||
driver_windows_test.go | ||
fingerprint.go | ||
fingerprint_test.go | ||
handle.go | ||
network.go | ||
progress.go | ||
progress_test.go | ||
reconciler.go | ||
reconciler_test.go | ||
state.go | ||
stats.go | ||
stats_test.go | ||
utils.go | ||
utils_test.go | ||
utils_unix_test.go | ||
utils_windows_test.go | ||
win32_volume_parse.go |