Платформа: Alt Server p11 x86_64 (Обновленный до Sisyphus) Пакеты: runc 1.4.0-alt1 cri-o1.28 1.28.11-alt2 cri-o1.27 1.27.8-alt2 cri-o1.26 1.26.4-alt5 cri-o1.25 1.25.5-alt3 cri-o1.24 1.24.6-alt4 Шаги: 1) Установить пакеты # apt-get install runc apt-get install -y cri-{o,tools}1.28 2) Запустить сервис # systemctl start crio 3) Загрузить образ # crictl pull registry.altlinux.org/sisyphus/nginx 4) Настроить контейнер # cat > nginx.json <<EOF { "metadata": { "name": "nginx-container", "attempt": 1 }, "image": { "image": "registry.altlinux.org/sisyphus/nginx" }, "log_path": "nginx.log", "linux": { "security_context": { "namespace_options": {} } } } EOF # cat > net-pod.json <<EOF { "metadata": { "name": "networking", "uid": "networking-pod-uid", "namespace": "default", "attempt": 1 }, "hostname": "networking", "port_mappings": [ { "container_port": 80 } ], "log_directory": "/tmp/net-pod", "linux": {} } EOF 5) Создать контейнер # POD_ID=$(crictl runp net-pod.json) && crictl create ${POD_ID} nginx.json net-pod.json 6) Запустить контейнер # CONT_ID=$(crictl ps -a | grep nginx | cut -d" " -f1) && crictl start ${CONT_ID} 7) Запустить интерактивный shell в контейнере: # crictl exec -it ${CONT_ID} /bin/bash 8) Выполнить любую команду [root@networking /]# ls Результат: Ошибки [root@networking /]# ls bash: fork: retry: Resource temporarily unavailable bash: fork: retry: Resource temporarily unavailable bash: fork: retry: Resource temporarily unavailable bash: fork: retry: Resource temporarily unavailable bash: fork: Resource temporarily unavailable Ожидаемый результат: Успешное выполнение команды Дополнительно: Воспроизводится только с 1.24 по 1.28 cri-o с 1.29 по 1.35 и на 1.23 cri-o - работает корректно Является регрессом по отношению к runc 1.3.0-alt1
На мой взгляд, с таким лучше сразу в апстрим. Правда, учитывая, что на последних версиях cri-o все работает, вряд ли кто-то будет смотреть.