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

Можно ли получить путь cgroup для контейнера Docker, управляемого Kubernetes?

Когда мы используем kubectl describe pods <pod_name>выводится большой объем информации, включая узел, на котором работает сервер, и различную информацию о модуле, включая идентификаторы контейнеров и изображения.

Если мы подключимся по ssh к узлу, мы сможем ковыряться /sys/fs/cgroup/memory/kubepods и найдите такие каталоги, как /sys/fs/cgroup/memory/kubepods/pod6cbf8d09-2a76-11e9-9f3e-42010a80003b, в которых есть подкаталоги, похожие на хэши. Если мы рассмотрим процессы, перечисленные в cgroup.procs псевдофайл внутри этих подкаталогов, мы можем сделать вывод, что эти подкаталоги соответствуют контейнерам Docker, запущенным Kubernetes.

К сожалению, человек должен вручную исследовать cgroup.procs file, чтобы определить, какому контейнеру соответствует каждый каталог.

Есть ли способ получить имена пути к подкаталогу в /sys/fs/cgroup/memory/kubepods который соответствует конкретному контейнеру внутри модуля?

Я бы не предлагал переименовывать подкаталоги контейнеров как хэши контейнеров. Если вы переименуете эти подкаталоги, это может привести к поломке файловой системы.

Кроме того, / sys содержит информацию и конфигурации, предоставляемые ядром. Изменение любой информации или конфигураций в этом каталоге может привести к непреднамеренному поведению внутри узла.