NeuVector 集成
Rancher 中的 NeuVector 集成
NeuVector 5.x 是一个开源的,以容器为中心的安全应用程序,Rancher 2.6.5 现已集成 NeuVector。NeuVector 在运行时为关键应用程序和数据提供实时的合规、可见和保护功能。NeuVector 提供具有 CIS Benchmark 和漏洞扫描的防火墙、容器进程/文件系统监控和安全审计。有关 Rancher 安全性的更多信息,请参阅安全文档。
NeuVector 可以通过 Helm Chart 启用。你可以在应用 & 应用市场或 Rancher UI 中的集群工具中安装该 Chart。安装 Helm Chart 后,用户可以轻松地在 Rancher 中部署和管理 NeuVector 集群。
使用 Rancher 安装 NeuVector
Harvester Helm Chart 用于管理 Rancher 中 NeuVector UI 的访问,用户可以在 Rancher 中直接跳转,然后部署和管理 NeuVector 集群。
通过”应用 & 应用市场”导航并安装 NeuVector Chart:
- Rancher v2.6.5+
- Rancher 版本低于 v2.6.5
- 点击 ☰ > 集群管理。
- 在 Clusters 页面上,转到要部署 NeuVector 的集群,然后单击 Explore。
- 转到 Apps > Charts,然后从 Chart 仓库中安装 NeuVector。
不同的集群类型需要不同的容器运行时。配置 Helm Chart 值时,转到容器运行时,然后根据集群类型选择运行时。最后,再次单击安装。
点击 ☰ > 集群管理。
- 在 Clusters 页面上,转到要部署 NeuVector 的集群,然后单击 Explore。
- 转到 应用 & 应用市场 > Charts,然后从 Chart 仓库中安装 NeuVector。
- 不同的集群类型需要不同的容器运行时。配置 Helm Chart 值时,转到容器运行时,然后根据集群类型选择运行时。最后,再次单击安装。
以下是一些例子:
RKE1:
docker
K3s 和 RKE2:
k3scontainerd
AKS:
containerd
适用于 v1.19 及更高版本EKS:
docker
适用于 v1.22 及以下版本;containerd
适用于 v1.23 及更高版本GKE:
containerd
(请参阅 Google 文档了解更多信息):::note
在安装过程中一次只能选择一个容器运行时引擎。
:::
通过集群工具导航并安装 NeuVector Chart:
- 点击 ☰ > 集群管理。
- 在 Clusters 页面上,转到要部署 NeuVector 的集群,然后单击 Explore。
- 点击左侧导航栏底部的集群工具。
- 按照上面的步骤 4 相应地选择你的容器运行时,然后再次单击安装。
从 Rancher UI 访问 NeuVector
- 导航到安装了 NeuVector 的集群的 Cluster Explorer。在左侧导航栏中,单击 NeuVector。
- 单击外部链接以转到 NeuVector UI。选择链接后,用户必须接受
最终用户许可协议
才能访问 NeuVector UI。
从 Rancher UI 卸载 NeuVector
通过”应用 & 应用市场”卸载:
- Rancher v2.6.5+
- Rancher 版本低于 v2.6.5
- 点击 ☰ > 集群管理。
- 在 Apps 下,点击 Installed Apps。
在
cattle-neuvector-system
下,选择 NeuVector 应用程序(如果需要,还可以选择相关的 CRD),然后单击删除。点击 ☰ > 集群管理。
- 在应用 & 应用市场下,点击已安装的应用。
- 在
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 安全容器:**
**NeuVector 架构:**
要了解有关 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 组件都是可部署的。
v2.6.7 新功能
你需要为强化集群环境进行额外的配置,如下所示:
- 点击 ☰ > 集群管理。
- 选择你创建的集群,并点击 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}}}}}}}'
v2.6.7 新功能
你需要为强化集群环境进行额外的配置。
注意:你必须更新 RKE2 和 K3s 强化集群中的配置,如下所示。
- 点击 ☰ > 集群管理。
- 选择你创建的集群,并点击 Explore。
- 在左侧导航栏中,点击应用 & 应用市场。
- 安装(或升级到)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}}}}}}}'
离线环境中的集群支持
- 所有 NeuVector 组件都可部署在离线环境中的集群上,无需任何额外配置。
支持限制
目前仅支持管理员和集群所有者。
不支持 Fleet 多集群部署。
Windows 集群不支持 NeuVector。
其他限制
目前,如果 NeuVector partner Chart 已存在,则 NeuVector 功能 Chart 的安装会失败。要解决此问题,请卸载 NeuVector partner Chart 并重新安装 NeuVector 功能 Chart。
Controller 未准备好时,有可能无法从 Rancher UI 访问 NeuVector UI。在此期间,Controller 将尝试重新启动,并且需要几分钟才能进入 active 状态。
安装 NeuVector Chart 时,不会针对不同的集群类型自动检测容器运行时。要解决此问题,你可以手动指定运行时。