используйте cri-o для запуска pod и container, когда `cgroup_manager = systemd` - PullRequest
1 голос
/ 17 октября 2019

Я успешно использую cri-o для запуска pod и контейнера, следуя инструкциям и , чье значение по умолчанию 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 ]

2 голосов
/ 18 октября 2019

Когда вы переключаете менеджер cgroup на 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",

Попробуйте воссоздать ваш модуль, и теперь он должен нормально загрузиться.

0 голосов
/ 18 октября 2019

Одна вещь, которую я должен был сделать, это установить мой cgroup-manager для crictl на systemd: в crictl.yaml:

runtime-endpoint: unix:///var/run/crio/crio.sock
cgroup-manager: systemd

Насколько я понимаю, вам не нужно указывать cgroupв конфигурации pod (вы можете, но это не обязательно). CRI-O и crictl просто должны запрашивать одинаковую иерархию cgroup

0 голосов
/ 18 октября 2019

Я нашел успешную демонстрацию в crictl.md .

Я думаю, что это может быть конфигурация Linux Group cgroup в 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...