【问题标题】:use cri-o to run pod and container when `cgroup_manager=systemd`当 `cgroup_manager=systemd` 时使用 cri-o 运行 pod 和容器
【发布时间】:2020-02-14 04:35:29
【问题描述】:

我成功使用cri-o运行pod和容器,遵循guidetutorial,其默认cgroup_managercgroupfs

当我尝试在/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-456

sandbox_config.jsonsandbox_config.json 相同

cgroup_manager=systemd时如何使用cri-o启动pod和容器?有样品吗?

【问题讨论】:

    标签: kubernetes systemd cgroups cri-o


    【解决方案1】:

    当你在 /etc/crio/crio.conf 中将 cgroup manager 切换到 systemd 时,你必须修改 pod yaml/json 来给 cgroup_parent 一个 slice。 所以在你的 sandbox_config.json 改变

    "linux": {
            "cgroup_parent": "/Burstable/pod_123-456",
    

    这样的事情

    "linux": {
            "cgroup_parent": "podabc.slice",
    

    尝试重新创建您的 pod,它现在应该可以正常启动了。

    【讨论】:

      【解决方案2】:

      我必须做的一件事是将我的 cgroup-manager for crictl 设置为 systemd: 在crictl.yaml:

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

      据我了解,您不需要在 pod 配置中指定 cgroup(可以,但不是必需的)。 CRI-O 和 crictl 只需要要求相同的 cgroup 层次结构

      【讨论】:

        【解决方案3】:

        我在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": {
          }
        }
        

        但是,我仍然不知道如何为 systemd 配置 sandbox_config.json 中的 linux.*

        【讨论】:

          猜你喜欢
          • 2022-07-09
          • 1970-01-01
          • 2019-03-11
          • 2021-10-15
          • 2021-05-12
          • 2020-05-13
          • 1970-01-01
          • 2020-09-07
          • 2020-12-11
          相关资源
          最近更新 更多