используйте cri-o для запуска модуля и контейнера, когда cgroup_manager=systemd
Я успешно использую cri-o для запуска модуля и контейнера, следуя руководству и руководству, которые по умолчаниюcgroup_manager
является cgroupfs
.
когда я пытался установить cgroup_manager = "systemd"
в /etc/crio/crio.conf
и перезапустить crio
оказание услуг.
затем я попробовал те же шаги в руководстве
POD_ID=$(sudo crictl runp test/testdata/sandbox_config.json)
получил ошибку ниже:
FATA[0000] run pod sandbox failed: rpc error: code = Unknown desc = cri-o configured with systemd cgroup manager, but did not receive slice as parent: /Burstable/pod_123-456
в sandbox_config.json
то же, что и sandbox_config.json
Как использовать Cri-o для запуска стручка и контейнера, когда cgroup_manager=systemd
? Есть образец?
3 ответа
Когда вы переключаете cgroup manager на systemd в /etc/crio/crio.conf, вам нужно изменить pod yaml/json, чтобы вместо этого cgroup_parent получил срез. Итак, в вашем sandbox_config.json измените
"linux": {
"cgroup_parent": "/Burstable/pod_123-456",
к чему-то вроде этого
"linux": {
"cgroup_parent": "podabc.slice",
Попробуйте воссоздать свой модуль, и теперь он должен нормально запуститься.
Одна вещь, которую мне нужно было сделать, это установить мой cgroup-manager для crictl на systemd:in crictl.yaml
:
runtime-endpoint: unix:///var/run/crio/crio.sock
cgroup-manager: systemd
Насколько я понимаю, вам не нужно указывать контрольную группу в конфиге пода (можно, но это не обязательно). CRI-O и crictl просто должны запрашивать одну и ту же иерархию cgroup
Я нашел успешную демонстрацию на crictl.md.
Я думаю, что конфигурация cgroup linux в sandbox_config.json выше не подходит для systemd.
$ cat pod-config.json
{
"metadata": {
"name": "nginx-sandbox",
"namespace": "default",
"attempt": 1,
"uid": "hdishd83djaidwnduwk28bcsb"
},
"log_directory": "/tmp",
"linux": {
}
}
$ cat container-config.json
{
"metadata": {
"name": "busybox"
},
"image":{
"image": "busybox"
},
"command": [
"top"
],
"log_path":"busybox/0.log",
"linux": {
}
}
Однако я до сих пор не знаю, как настроить linux.*
в sandbox_config.json
для systemd.