[freebsd] AWS Tech Conference

Mykola Dzham i at levsha.me
Wed Jun 29 13:38:29 EEST 2022



> On 29 Jun 2022, at 10:56, Valentin Nechayev <netch at netch.kiev.ua> wrote:
> 
> hi,
> 
> Wed, Jun 29, 2022 at 10:05:47, i wrote about "Re: [freebsd] AWS Tech Conference": 
> 
>>> 2. своё пространство pidʼов
>> 
>> Похоже что нету, но на самом деле не очень то и надо - вообще то pid-ы изнутри docker контейнеров тоже прекрасно видны на host системе.
> 
> Во-первых, видны, но под своими номерами. В контейнере иерархия
> строится от pid=1, дальше последовательно 2, 3 и так далее, а у хоста
> они видны иначе. Вот я заглянул execʼом в контейнер:
> 
> / # ps ax
> PID   USER     TIME  COMMAND
>    1 root      0:00 sleep 3600
>   10 root      0:00 /bin/sh
>   15 root      0:00 ps ax
> 
> А вот я смотрю на то же самое из хост-системы:
> 
> 4037136 ?        Sl     0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -i
> d cc8eb0bd81e855e58132d5db46ae35a534bf746abeb6fd4d8e20459ae683b47a -address /var
> /run/docker/containerd/containerd.sock
> 4037157 ?        Ss     0:00  \_ sleep 3600
> 4042116 pts/0    Ss+    0:00  \_ /bin/sh
> 
> Во-вторых, эта видимость односторонняя (ещё бы).
> 
> (Вот что плохо, что соответствие pidʼов хоста и контейнера надо искать кривыми
> путями. Видимо, обычно мало кому нужно.)

Виноват, в спешке думал об UID-ах. Да, такого нету. Насколько это критично не знаю. В общем не должно, но уверен что есть куча мест, которые ожидают первый процесс в контейнере имеет pid=1 и сломаются если это будет не так.

>>> 3. шейперы разных шедулеров (CPU, IO, память) и пространства учёта
>> 
>> Есть через rctl, который умеет дружить с jail: https://docs.freebsd.org/doc/9.2-RELEASE/usr/share/doc/freebsd/handbook/security-resourcelimits.html
> 
> Жестковато и неиерархично, но для начала сойдёт.
> 
>> Частично есть: cpuset.id в jail(8). Но на самом деле не так часто используется в K8s.
> 
> Где как... мы сейчас в контейнерах привязываемся через DPDK к сетевым
> интерфейсам, там это критично.
> 
>> Повторюсь: большинство необходимых компонент есть, а чего нету, то можно доделать и/или не так уже и критично на самом деле.
> 
> Я вообще-то не утверждал, что его нет :)
> я говорил, что для полноценного контейнера нужно много больше, чем те 2-3
> пункта, что привёл Евгений.
> Это сейчас мы уже перешли к конкретным пунктам, есть или нет, и как именно.
> 
>> Причём много этого всего есть задолго до того, как оно появилось в linux.
> 
> Ой я бы не спешил с подобными историческими выводами:)

Всё началось где-то в 2006-м году, когда Google надоело поддерживать внутреннее глубоко кастомное ядро, и они опубликовали свои разработки для Borg, которые теперь известны как cgroups.
До этого все в линукс мире верили “фигня эти ваши jail-ы, будущее за виртаулизацией”.
Но это не принципиально для вопроса.

>> Только никто не будет это всё ручками лепить докучи. Надо чтобы всё это было
> слеплено в стандартизированный СRI. И вот этого нету.
> 
> Да, похоже на то.
> 
> 
> -netch-



More information about the freebsd mailing list