kubelet-config custom parameters are missing after k8s upgrade
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
StarlingX |
Fix Released
|
Medium
|
Jim Gauld |
Bug Description
Brief Description
-----------------
kubelet-config custom parameters are missing after k8s upgrade.
The custom kubelet-config Garbage Collection related parameters are missing after a kubernetes version upgrade. The command 'system kube-config-
Root cause:
During the k8s upgrade procedure, the old kubelet-
In historical releases we also had a kubelet_
Solution:
- remove usage of --config kubelet_
- remove the old kubelet-config ConfigMap after the upgrade apply
Severity
--------
Provide the severity of the defect.
Major. System is usable, but there is risk of becoming unstable due to exceeding resource limits.
Steps to Reproduce
------------------
Perform kubernetes version upgrade.
Write down the steps to reproduce the issue :
Example steps for AIO-SX (abridged):
// perform upgrade from k8s 1.19.13 to 1.20.9
fm alarm-list --mgmt_affecting
system health-
system kube-upgrade-start v1.20.9 --force
system kube-upgrade-show
system kube-upgrade-
system kube-upgrade-show
system kube-upgrade-
system kube-upgrade-show
system kube-host-upgrade controller-0 control-plane
system kube-upgrade-show
system kube-host-upgrade controller-0 kubelet
system kube-upgrade-
system kube-upgrade-delete
Expected Behavior
------------------
kubectl -n kube-system get configmaps -oname | grep -e kubelet-config
kubelet-config-1.20
See all parameters in config.yaml and in the ConfigMap.
grep -rs -e evictionHard: -e available -e nodefs -e imageGC /var/lib/
evictionHard:
imagefs.
memory.available: 100Mi
nodefs.available: 10%
nodefs.
imageGCHighThre
imageGCLowThres
kubectl -n kube-system get configmaps -oname --sort-
grep -e kubelet-config | xargs -i -r kubectl -n kube-system get {} -oyaml | \
grep -e evictionHard: -e available -e nodefs -e imageGC
evictionHard:
imagefs.
memory.
nodefs.
nodefs.
imageGCHigh
imageGCLowT
Actual Behavior
----------------
grep -rs -e evictionHard: -e available -e nodefs -e imageGC /var/lib/
<when broken, this gives empty result, i.e., missing parameters>
kubectl -n kube-system get configmaps -oname | grep -e kubelet-config
kubelet-config-1.19
kubelet-config-1.20
<this has the older versions and the newly upgraded version>
Reproducibility
---------------
100%
System Configuration
-------
All configs.
- Standard, AIO-DX, AIO-SX
- System Controller and Subcloud nodes.
Branch/Pull Time/Commit
-------
N/A.
Last Pass
---------
Never.
Day one bug with k8s upgrades.
Seen now that kubelet-config parameters are customized different than upstream default.
Timestamp/Logs
--------------
N/A.
Test Activity
-------------
Platform upgrade test. Evaluation.
Workaround
----------
Manually purge old kubelet-config ConfigMap.
re-issue command 'system kube-config-
Changed in starlingx: | |
assignee: | nobody → Jim Gauld (jgauld) |
Changed in starlingx: | |
importance: | Undecided → Medium |
tags: | added: stx.9.0 stx.containers stx.update |
Fix proposed to branch: master /review. opendev. org/c/starlingx /stx-puppet/ +/881153
Review: https:/