kubelet on lxd fails to start with Failed to start ContainerManager [invalid kernel flag: kernel/panic, expected value: 10, actual value: 0, invalid kernel flag: kernel/panic_on_oops, expected value: 1, actual value: 0, invalid kernel flag: vm/overcommit_memory, expected value: 1, actual value: 0]
Bug #1903566 reported by
Jason Hobbs
This bug affects 3 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Kubernetes Worker Charm |
Fix Released
|
Medium
|
George Kraft |
Bug Description
during a deploy on baremetal, a kubelet failed to start with this error and a lot of go tracebacks. This repeated many times:
Nov 06 10:28:17 juju-431bee-1-lxd-2 kubelet.
example run https:/
summary: |
- kubelet fails to start with Failed to start ContainerManager [invalid - kernel flag: kernel/panic, expected value: 10, actual value: 0, invalid - kernel flag: kernel/panic_on_oops, expected value: 1, actual value: 0, - invalid kernel flag: vm/overcommit_memory, expected value: 1, actual - value: 0] + kubelet on lxd fails to start with Failed to start ContainerManager + [invalid kernel flag: kernel/panic, expected value: 10, actual value: 0, + invalid kernel flag: kernel/panic_on_oops, expected value: 1, actual + value: 0, invalid kernel flag: vm/overcommit_memory, expected value: 1, + actual value: 0] |
description: | updated |
Changed in charm-kubernetes-worker: | |
importance: | High → Medium |
Changed in charm-kubernetes-worker: | |
status: | In Progress → Fix Committed |
Changed in charm-kubernetes-worker: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
This will happen any time kubernetes-worker is placed on LXD. The charm normally sets these kernel parameters as part of the charm's sysctl config[1], however on LXD, the sysctl config is simply ignored[2].
A workaround is to configure kubelet with protectKernelDe faults= false:
juju config kubernetes-worker kubelet- extra-config= '{protectKernel Defaults: false}'
When you do this, Kubelet will stop protecting kernel defaults and will set the kernel.panic, kernel. panic_on_ oops, and vm.overcommit_ memory kernel parameters automatically.
[1]: https:/ /github. com/charmed- kubernetes/ layer-kubernete s-master- worker- base/blob/ 809f06c6f6521be 59e21859eaebecc d13f4d8c28/ config. yaml#L4 /github. com/charmed- kubernetes/ layer-kubernete s-master- worker- base/blob/ 809f06c6f6521be 59e21859eaebecc d13f4d8c28/ reactive/ kubernetes_ master_ worker_ base.py# L78
[2]: https:/