Назад | Перейти на главную страницу

Повторяющиеся сбои модуля при развертывании gitlab microk8s

Я развернул экземпляр Gitlab 12.10 на microk8s 1.18 на моем сервере Ubuntu 19.10. Я неоднократно замечал, что некоторые из модулей переходят в статус CrashBackoffLoop или Init:CrashBackoffLoop с такими сообщениями об ошибках, как:

Message: failed to create containerd task: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:424: container init caused \"rootfs_linux.go:58: mounting \\\"/var/snap/microk8s/common/var/lib/kubelet/pods/de572f6b-f738-4b1a-ae02-80fef062cabe/volume-subpaths/sidekiq-secrets/dependencies/2\\\" to rootfs \\\"/var/snap/microk8s/common/run/containerd/io.containerd.runtime.v1.linux/k8s.io/3ae6fc33b02192c3940af4ebc991a47b1fd0afc2533901af50ae5a5f93585d1c/rootfs\\\" at \\\"/var/snap/microk8s/common/run/containerd/io.containerd.runtime.v1.linux/k8s.io/3ae6fc33b02192c3940af4ebc991a47b1fd0afc2533901af50ae5a5f93585d1c/rootfs/srv/gitlab/config/secrets.yml\\\" caused \\\"no such file or directory\\\"\"": unknown

К сожалению, я не уверен, является ли эта проблема специфической для Gitlab или общей проблемой с моим кластером microk8s. Не всегда выходит из строя один и тот же компонент. Чаще всего выходит из строя один и тот же компонент. gitlab-runner, sidekiq и unicorn, но я также видел других, у которых время от времени возникала похожая ошибка «нет такого файла или каталога».

Когда я удаляю сбойный модуль, новый, который создается, запускается без проблем, затем, кажется, какое-то время все работает, пока один или несколько модулей снова не выйдут из строя.

Есть идеи, что может быть причиной этого?

У меня такая же проблема; Первоначально проблема была устранена при полной перезагрузке сервера, но затем она периодически возвращалась.

обнаружение

Наконец, выяснилось, что проблема связана с правами доступа к "необработанным" файлам секретов (например,

/var/snap/microk8s/common/var/lib/kubelet/pods/<pod_guid>/volume-subpaths/task-runner-secrets/task-runner/<file_no>
) for the 3 main pods (sidekick, unicorn & task-runner) - all other secret and config map file entries had
r--r-----
permissions, with
root:<user group>
ownership - but these secret files also had
r--r-----
, but for
<user>:<user group>
, which means "not readable for anyone but <user>" - which sometimes works (if microk8s gets started in the user context) but sometimes fails (no idea about the logic of micro8ks here)

Решение

chown root:<user group>
for these files fixes the issue