本页面介绍如何通过启用 SELinux 来保护容器。Red Hat Enterprise Linux (RHEL) 支持 SELinux。如果您的主机正在运行 RHEL,并且您希望为集群启用 SELinux,则必须在所有主机中启用 SELinux。从 GKE on Bare Metal 版本 1.9.0 开始,您可以在创建集群或升级集群之前或之后启用或停用 SELinux。在主机上启用 SELinux 后,就会为容器运行时启用 SELinux。
检查是否已启用 SELinux
默认情况下,RHEL 在 RHEL 上启用 SELinux。
如需对此进行验证,请运行以下命令:
getenforce
该命令会返回 Enforcing
、Permissive
或 Disabled
。如果该命令返回 Enforcing
,您可以继续升级或创建集群。
启用 SELinux
如果 getenforce
命令返回 Permissive
,则您可以使用 setenforce
命令切换到 Enforcing
模式。使用 setenforce
在 Permissive
和 Enforcing
模式之间切换不需要重新启动系统。不过,如果您希望这些更改在重新启动后仍然存在,则必须更新 /etc/selinux/config
文件。
如需切换到
Enforcing
模式,请运行以下命令:sudo setenforce 1 # temporary sudo sed -i 's/SELINUX=permissive/SELINUX=enforcing/g' /etc/selinux/config # persistent - after reboot
如果 SELinux 为 Disabled
,则如需启用它,我们建议您首先在 Permissive
模式下启用它,然后重新启动系统以验证系统是否已成功启动。如果没有出现任何 SELinux 错误,您便可以安全地将 SELinux 切换到 Enforcing
模式。
可选:在
Permissive
模式下启用 SELinux:sudo sed -i 's/SELINUX=disabled/SELINUX=permissive/g' /etc/selinux/config sudo reboot
如果系统成功重新启动,并且没有出现 SELinux 错误,那么您可以启用
Enforcing
模式:sudo sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config sudo reboot
在 Enforcing
模式下启用 SELinux 后,系统会为主机上的所有进程(包括容器运行时)启用 SELinux。