Демонсет будет выполнять следующее:
- При помощи bash скрипта постояннo проверять наличие нужных флагов на нодах.
- В случае, если их нет, копировать их из конфигмапа.
- Перезагружать kubelet.
Демонсет работает с нодами использующими Docker runtime.
- Создаем неймспейс для работы демонсета в целях изоляции его работы.
kubectl apply -f kubelet-flag-editor-ns.yaml
- Создаем простой конфигмап, с флагами внутри и не забываем кавычки в конце.
kubectl apply -f kubelet-flag-editor-configmap --namespace="kubelet-flag-editor"
Далее переходим к созданию самого демонсета.
- Создаем демонсет
kubectl apply -f kubelet-flag-editor-ds.yaml
Далее можно мониторить состояние демонсета, в случае, когда произойдет обновление флагов, то под перезагрузит процесс kubelet и новые флаги появятся на процессе kubelet.
При помощи:
kubectl edit configmap kubelet-flag-editor-configmap -o yaml -n kubelet-flag-editor
Мы можем добавить дополнительные флаги, когда они понадобятся, однако стоит обратить внимание, что в скрипте проверки наличия флагов скорее проверяются сами флаги, а не их значения, поэтому если вы будете изменять значения, скрипт может подумать, что изменений быть не должно и пропустит изменения, в случае, если значения будут подобраны неверно (например, в конфигмапе выше перепутать gc-image-threshold high с low ), процесс kubelet не сможет перезапуститься и нода перейдет в статус not ready.