概述
Rancher 中的 SUSE® Security 集成
NeuVector 5.x 是一个开源的,以容器为中心的安全应用程序,Rancher 已集成 NeuVector。NeuVector 在运行时为关键应用程序和数据提供实时的合规、可见和保护功能。NeuVector 提供具有 CIS Benchmark 和漏洞扫描的防火墙、容器进程/文件系统监控和安全审计。有关 Rancher 安全性的更多信息,请参阅安全文档。
NeuVector 可以通过 Helm Chart 启用。你可以在 Apps 或 Rancher UI 中的 Cluster Tools 中安装该 Chart。安装 Helm Chart 后,用户可以轻松地在 Rancher 中部署和管理 NeuVector 集群。
使用 Rancher 安装 SUSE® Security
Harvester Helm Chart 用于管理 Rancher 中 NeuVector UI 的访问,用户可以在 Rancher 中直接跳转,然后部署和管理 NeuVector 集群。
通过 Apps 导航并安装 NeuVector Chart:
-
单击 ☰ > 集群管理。
-
在 Clusters 页面上,转到要部署 NeuVector 的集群,然后单击 Explore。
-
转到
,然后从 Chart 仓库中安装 NeuVector。 -
不同的集群类型需要不同的容器运行时。配置 Helm Chart 值时,转到容器运行时,然后根据集群类型选择运行时。最后,再次单击安装。
以下是一些例子:
-
RKE1:
docker
-
K3s 和 RKE2:
k3scontainerd
-
AKS:
containerd
适用于 v1.19 及更高版本 -
EKS:
docker
适用于 v1.22 及以下版本;containerd
适用于 v1.23 及更高版本 -
GKE:
containerd
(请参阅 Google 文档了解更多信息)
在安装过程中一次只能选择一个容器运行时引擎。 |
通过集群工具导航并安装 NeuVector Chart:
-
单击 ☰ > 集群管理。
-
在 Clusters 页面上,转到要部署 NeuVector 的集群,然后单击 Explore。
-
点击左侧导航栏底部的集群工具。
-
按照上面的步骤 4 相应地选择你的容器运行时,然后再次单击安装。
从 Rancher UI 访问 SUSE® Security
-
导航到安装了 NeuVector 的集群的 Cluster Explorer。在左侧导航栏中,单击 NeuVector。
-
单击外部链接以转到 NeuVector UI。选择链接后,用户必须接受
最终用户许可协议
才能访问 NeuVector UI。
从 Rancher UI 卸载 SUSE® Security
通过 Apps 卸载:
-
单击 ☰ > 集群管理。
-
在 Apps 下,点击 Installed Apps。
-
在
cattle-neuvector-system
下,选择 NeuVector 应用程序(如果需要,还可以选择相关的 CRD),然后单击删除。
通过集群工具卸载:
-
单击 ☰ > 集群管理。
-
单击屏幕左下角的集群工具,然后单击 NeuVector Chart 下方的垃圾桶图标。如果需要,选择
删除与此应用关联的 CRD
,然后单击删除。
GitHub 仓库
NeuVector 项目在这里。
文档
NeuVector 文档在这里。
架构
NeuVector 安全解决方案包含四种类型的安全容器,分别是 Controller、Enforcer、Manager 和 Scanner。它还提供了一个称为 All-in-One 的特殊容器(主要用于 Docker 原生部署),能将 Controller、Enforcer 和 Manager 功能组合在一个容器中。此外,还有一个 Updater,运行该程序时会更新 CVE 数据库。
-
Controller: 管理 NeuVector Enforcer 容器;为管理控制台提供 REST API。
-
Enforcer: 执行安全策略。
-
Manager: 提供一个 web-UI 和 CLI 控制台来管理 NeuVector 平台。
-
All-in-One: 包括 Controller、Enforcer 和 Manager。
-
Scanner: 对镜像、容器和节点执行漏洞和合规性扫描。
-
Updater: 更新 Neuvector 的 CVE 数据库(运行的时候);重新部署 scanner pod。
要了解有关 NeuVector 架构的更多信息,请参阅此处。
CPU 和内存分配
以下是默认 NeuVector Chart 安装部署的最低计算资源推荐。请注意,未设置资源限制。
容器 | CPU - 请求 | 内存 - 请求 |
---|---|---|
Controller |
3(每个控制器需要 1GB 1vCPU) |
* |
Enforcer |
所有节点上 (500MB .5vCPU) |
1GB |
Manager |
1 (500MB .5vCPU) |
* |
Scanner |
3 (100MB .5vCPU) |
* |
-
Controller、Manager 和 Scanner 容器合计至少需要 1GB 内存。
强化集群支持 - Calico 和 Canal
-
RKE1
-
RKE2
-
如果 PSP 设置为 true,则所有 NeuVector 组件都是可部署的。
你需要为强化集群环境进行额外的配置,如下所示:
-
单击 ☰ > 集群管理。
-
选择你创建的集群,并点击 Explore。
-
在左侧导航栏中,点击 Apps。
-
安装(或升级到)NeuVector 版本
100.0.1+up2.2.2
。-
在编辑选项 > 其它配置下,选中复选框来启用 Pod 安全策略(无需其他配置):
-
-
点击右下角的安装。
-
-
如果 PSP 设置为 true,则可以部署 NeuVector 组件 Controller 和 Enforcer。
仅适用于 NeuVector Chart 版本 100.0.0+up2.2.0:
-
对于 Manager、Scanner 和 Updater 组件,需要进行额外的配置,如下所示:
kubectl patch deploy neuvector-manager-pod -n cattle-neuvector-system --patch '{"spec":{"template":{"spec":{"securityContext":{"runAsUser": 5400}}}}}' kubectl patch deploy neuvector-scanner-pod -n cattle-neuvector-system --patch '{"spec":{"template":{"spec":{"securityContext":{"runAsUser": 5400}}}}}' kubectl patch cronjob neuvector-updater-pod -n cattle-neuvector-system --patch '{"spec":{"jobTemplate":{"spec":{"template":{"spec":{"securityContext":{"runAsUser": 5400}}}}}}}'
你需要为强化集群环境进行额外的配置。
注意:你必须更新 RKE2 和 K3s 强化集群中的配置,如下所示。
-
单击 ☰ > 集群管理。
-
选择你创建的集群,并点击 Explore。
-
在左侧导航栏中,点击 Apps。
-
安装(或升级到)NeuVector 版本
100.0.1+up2.2.2
。-
在编辑选项 > 其它配置下,选中复选框来启用 Pod 安全策略。请注意,对于
Manager runAsUser ID
,Scanner runAsUser ID
和Updater runAsUser ID
,你还必须输入大于0
的值:
-
-
点击右下角的安装。
-
启用 SELinux 的集群支持 - Calico 和 Canal
要在 RKE2 集群上启用 SELinux,请执行以下步骤:
-
如果 PSP 设置为 true,则可以部署 NeuVector 组件 Controller 和 Enforcer。
仅适用于 NeuVector Chart 版本 100.0.0+up2.2.0:
-
对于 Manager、Scanner 和 Updater 组件,需要进行额外的配置,如下所示:
kubectl patch deploy neuvector-manager-pod -n cattle-neuvector-system --patch '{"spec":{"template":{"spec":{"securityContext":{"runAsUser": 5400}}}}}' kubectl patch deploy neuvector-scanner-pod -n cattle-neuvector-system --patch '{"spec":{"template":{"spec":{"securityContext":{"runAsUser": 5400}}}}}' kubectl patch cronjob neuvector-updater-pod -n cattle-neuvector-system --patch '{"spec":{"jobTemplate":{"spec":{"template":{"spec":{"securityContext":{"runAsUser": 5400}}}}}}}'