Skip to main content

SELinux

RKE2 可以在支持 SELinux 的系统上运行,这是在 CentOS/RHEL 7/8 上安装时的默认设置。支持该策略的policy是针对 containerd 的container-selinux策略的一个特殊版本。它说明了 containerd 安装的非标准位置,并将持久性和短暂性的状态。

自定义上下文标签#

RKE2 将 control-plane 服务作为静态 pod 运行,需要访问多个container_var_lib_t位置。etcd容器必须能够在/var/lib/rancher/rke2/server/db下读写,并与kube-apiserverkube-controller-managerkube-scheduler一起从/var/lib/rancher/rke2/server/tls读取。为了不过度授权,例如spc_t,RKE2 SELinux 策略引入了rke2_service_db_trke2_service_t上下文标签,分别为读写和只读访问。这些标签将仅应用于 RKE2 control-plane 的静态 pod。

配置#

RKE2 对 SELinux 的支持只有一个配置项,即--selinux布尔标志。这是一个通向containerd/cri toml 的 cri 部分的enable_selinux布尔值的通道。如果 RKE2 是通过 tarball 安装的,那么如果不进行额外的配置,SELinux 将不会被启用。推荐的配置方法是在 RKE2 的 config.yaml 中加入一个条目,例如:

# /etc/rancher/rke2/config.yaml 是默认位置
selinux: true

这相当于在rke2 serverrke2 agent命令行中传递--selinux标志,或者设置 RKE2_SELINUX=true 环境变量。

Last updated on by kingsd041