在guide和tutorial之后,我成功地使用cri-o运行了pod和容器,默认的cgroup_manager是cgroupfs。
当我尝试在/etc/crio/crio.conf中设置cgroup_manager = "systemd"并重启crio服务时。
然后,我在tutorial中尝试了相同的步骤
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-456sandbox_config.json与sandbox_config.json相同
cgroup_manager=systemd时如何使用cri-o启动pod和容器?有样品吗?
发布于 2019-10-18 22:06:52
当您将cgroup管理器切换到/etc/crio/crio.conf中的systemd时,您必须修改pod yaml/json以给cgroup_parent一个切片。因此在您的sandbox_config.json更改中
"linux": {
"cgroup_parent": "/Burstable/pod_123-456",像这样的东西
"linux": {
"cgroup_parent": "podabc.slice",尝试重新创建pod,它现在应该可以正常启动。
发布于 2019-10-18 15:27:34
我在crictl.md中找到了一个成功的演示。
我认为可能是上面sandbox_config.json中的linux cgroup配置不适合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": {
}
}但是,我仍然不知道如何在sandbox_config.json中为systemd配置linux.*。
发布于 2019-10-18 22:00:33
我必须做的一件事是将crictl的cgroup-manager设置为systemd: in crictl.yaml
runtime-endpoint: unix:///var/run/crio/crio.sock
cgroup-manager: systemd据我所知,您不需要在pod配置中指定cgroup (您可以,但这不是必需的)。CRI-O和crictl只需要请求相同的cgroup层次结构
https://stackoverflow.com/questions/58429514
复制相似问题