我和kube & Cri-o有个问题。实际上,我正在部署kube集群,我只是不打算部署仪表板。我已经安装了CRIO,而不是Docker (生产环境中的RHEL8)。"describe pod“命令的输出日志是:
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)
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
CONFIG_SECCOMP=y有了这些回报,我想这是启用的..。
在我安装kube的过程中,我在我的系统中找到了一个seccomp.json文件,我试图在CRI-O的配置中的seccomp_profile部分中设置绝对路径,但没有.这不是解决办法..。
有人有主意吗.?
致以敬意,
发布于 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提到:
..。一般来说,我不可能找到关于以下方面的任何一般性描述:
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为自己提供了一个解决方案。
https://stackoverflow.com/questions/61058619
复制相似问题