Closed bendemott closed 1 month ago
Don't do that. Don't run rke2 alongside an existing installation of containerd, or if you must, point rke2 at that existing service's socket via the --container-runtime-endpoint option so that it does not try to start the bundled containerd.
@brandond
There are many reasons RKE2 may fail to start containerd
In any case, a better message than the following would be useful: (a hint to the log file location of containerd)
time="2024-09-13T16:58:17-07:00" level=error msg="containerd exited: exit status 1"
Also, my error was not caused by having a "separate" installation of containerd
from RKE2.
It's that I unknowing called containerd.exe --register-service
- this registered the RKE2 containerd as a service.
It's that I unknowing called
containerd.exe --register-service
Why did you do that? You are not intended to manually run RKE2's bundled containerd at all.
Environmental Info: RKE2 Version:
1.27
->1.31
(tested)Node(s) CPU architecture, OS, and Version:
Cluster Configuration:
Describe the bug: Some installations of
containerd
will register a service (services.msc
) If containerd is started before rke2 as a service, rke2 fails to start with the error:The cause of the error can be found in
containerd
log at:C:\var\lib\rancher\rke2\agent\containerd\containerd.log
//./pipe/containerd-containerd.ttrpc: Access is denied.
is the shared pipe containerd opens for communication between the daemons.Access Denied
error is becausecontainerd
is already running, and that named pipe is already in use.Disabling the
containerd
service will prevent this conflict from happening.Steps To Reproduce:
containerd.exe --register-service
containerd
service viaservices.msc
rke2
service.Expected behavior: It can be difficult in windows to detect if a named pipe is in use.
dir //./
will list named pipes...using
ctr.exe
will timeout ifcontainerd
is NOT running.Actual behavior: rke2 fails to start with unhelpful message
Additional context / logs: happy to add full logs if this description is not enough.
Workaround
unregister the
containerd
service, or disable it