首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未能创建荚sandbox: rpc错误:代码=未知desc = seccomp在内核中未启用,无法使用配置文件运行

未能创建荚sandbox: rpc错误:代码=未知desc = seccomp在内核中未启用,无法使用配置文件运行
EN

Stack Overflow用户
提问于 2020-04-06 11:21:34
回答 1查看 4K关注 0票数 1

我和kube & Cri-o有个问题。实际上,我正在部署kube集群,我只是不打算部署仪表板。我已经安装了CRIO,而不是Docker (生产环境中的RHEL8)。"describe pod“命令的输出日志是:

代码语言:javascript
复制
Events:
  Type     Reason                  Age                 From                   Message
  ----     ------                  ----                ----                   -------
  Normal   Scheduled               11m                 default-scheduler      Successfully assigned kubernetes-dashboard/dashboard-metrics-scraper-6b4884c9d5-fwdv9 to worker-node1
  Warning  FailedCreatePodSandBox  95s (x48 over 11m)  kubelet, worker-node1  Failed to create pod sandbox: rpc error: code = Unknown desc = seccomp is not enabled in your kernel, cannot run with a profile

我试过这个:grep SECCOMP /boot/config-$(uname -r)

代码语言:javascript
复制
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
CONFIG_SECCOMP=y

有了这些回报,我想这是启用的..。

在我安装kube的过程中,我在我的系统中找到了一个seccomp.json文件,我试图在CRI-O的配置中的seccomp_profile部分中设置绝对路径,但没有.这不是解决办法..。

有人有主意吗.?

致以敬意,

EN

回答 1

Stack Overflow用户

发布于 2020-04-21 12:11:44

yaml默认情况下,seccomp设置为seccomp.security.alpha.kubernetes.io/pod: 'runtime/default'

这意味着它使用的是默认容器运行时配置文件,我们可以读取这里

在豆荚中使用seccomp配置文件可以通过PodSecurityPolicy上的注释来控制。Seccomp是Kubernetes中的alpha功能。 seccomp.security.alpha.kubernetes.io/defaultProfileName -指定应用于容器的默认seccomp的注释。可能的价值是:

  • unconfined - Seccomp不应用于容器进程(这是Kubernetes中的缺省值),如果没有提供替代的话。
  • runtime/default -使用默认容器运行时配置文件。
  • docker/default --使用了Docker默认的seccomp配置文件。被反对的是Kubernetes 1.11。使用runtime/default代替。
  • localhost/<path> -将配置文件指定为位于<seccomp_root>/<path>的节点上的文件,其中<seccomp_root>是通过Kubelet上的--seccomp-profile-root标志定义的。

使用空seccomp配置文件的意外行为有一个github问题。在讨论中,@saschagrunert提到:

..。一般来说,我不可能找到关于以下方面的任何一般性描述:

  • 如果一个配置文件被指定到一个吊舱,它也适用于所有容器。 (目前只有seccomp支持)
  • 如果向容器指定了配置文件,它将覆盖豆荚配置文件。
  • 我们总是默认为runtime/default

我非常希望从安全的角度来实施这一点,并将其正确地记录在这个存储库中的一个专用安全部分中。什么地方?

顺便说一句,我们可能应该推动对seccomp和AppArmor的GA粒度评估,以便在securityContext中获得一个一流的API,就像SELinux一样。请参阅:https://kubernetes.io/docs/tutorials/clusters/apparmor/#upgrade-path-to-general-availability

正如@CptBuko已经提到的,他通过设置不对容器进程应用seccomp的seccomp.security.alpha.kubernetes.io/pod: unconfined为自己提供了一个解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61058619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档