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-apiserver
、kube-controller-manager
和kube-scheduler
一起从/var/lib/rancher/rke2/server/tls
读取。为了不过度授权,例如spc_t
,RKE2 SELinux 策略引入了rke2_service_db_t
和rke2_service_t
上下文标签,分别为读写和只读访问。这些标签将仅应用于 RKE2 control-plane 的静态 pod。
#
配置RKE2 对 SELinux 的支持只有一个配置项,即--selinux
布尔标志。这是一个通向containerd/cri toml 的 cri 部分的enable_selinux
布尔值的通道。如果 RKE2 是通过 tarball 安装的,那么如果不进行额外的配置,SELinux 将不会被启用。推荐的配置方法是在 RKE2 的 config.yaml
中加入一个条目,例如:
这相当于在rke2 server
或rke2 agent
命令行中传递--selinux
标志,或者设置 RKE2_SELINUX=true
环境变量。