使用 Rancher 在 Kubernetes 上对 root 以外的用户运行时,功能被切断 [已关闭]

Capabilities are cut off while running on user other than root on Kubernetes with Rancher [closed]

提问人:pawel2272 提问时间:11/8/2023 更新时间:11/16/2023 访问量:33

问:


这个问题似乎不是关于特定的编程问题、软件算法或程序员主要使用的软件工具。如果您认为该问题在另一个 Stack Exchange 站点上是主题,您可以发表评论以解释该问题可能在哪里得到回答。

10小时前关闭。

我有一个运行 Rancher v2.7.5 的 Kubernetes 集群 v1.23.15+rke2r1。节点在 RHEL 8.8 上运行。问题是,当在用户而不是 root 上运行时,在 pod 的容器内运行的 .NET 6.0 进程没有任何功能,这阻止了我在示例中创建内存转储。如果我使用 getpcaps 在示例用户上检查它,我会得到以下输出:

sample@containername-deploy-8477c49dc6-t6hfg:/app$ getpcaps 1 caps.txt
1: =
caps.txt: =
sample@containername-deploy-8477c49dc6-t6hfg:/app$

如果我将 securityContext 特权更改为 true,将 runAsUser 更改为 0(root),情况就完全不同了。

root@containername-deploy-db44d8ffb-g8hpn:/app# getpcaps 1 caps.txt
1: cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_sys_ptrace,cap_mknod,cap_audit_write,cap_setfcap=ep
caps.txt: cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_sys_ptrace,cap_mknod,cap_audit_write,cap_setfcap=ep
root@containername-deploy-db44d8ffb-g8hpn:/app#

我不明白是什么原因导致了这个问题。我已经尝试删除一些 PSP 并手动添加功能 (spec.containers.capabilities.add)。它根本不起作用。

kubernetes rancher linux-capabilities rke2

评论

0赞 Tinkerer 11/10/2023
getpcaps 的手册页未指示这是有效的命令行参数。该程序的现代版本,PID=1 的输出。caps.txt=ep
0赞 Tinkerer 11/10/2023
我刚刚下载了最新的 libcap 源代码并重新编译,对于命令行参数,它输出:.progs/getpcapscaps.txtCannot parse pid caps.txt: (Invalid argument)
0赞 Tinkerer 11/11/2023
输出是什么?这将有助于确定您尝试解决的问题是事物还是容器事物。grep Cap /proc/1/statusgetpcaps
0赞 Nick 11/24/2023
这个问题更适合服务器故障

答:

0赞 Dion V 11/16/2023 #1

你可以尝试将第一个 Rancher 更新到 2.7.6 版本,如果问题仍然存在,请重试。然后,您还可以升级作为故障排除的一部分使用的 RHEL 版本。根据此文档,似乎已经存在持续的担忧。提供了几个步骤来解决这个问题,包括升级正在使用的版本。