前言

Rainbond 是一个云原生利用治理平台,应用简略,不须要懂容器、Kubernetes和底层简单技术,反对治理多个Kubernetes集群,和治理企业应用全生命周期。然而随着云原生时代的一点点提高,层出不穷的网络容器安全事件的呈现,也是让大家对于容器平安,网络安全的重要性,有了更进一步的想法,Rainbond 为了保障用户在应用的过程中不呈现相似的容器安全事件,特地适配整合了 NeuVector。

NeuVector 是业界首个端到端的开源容器平安平台,为容器化工作负载提供企业级零信赖平安的解决方案。NeuVector 能够提供实时深刻的容器网络可视化、东西向容器网络监控、被动隔离和爱护、容器主机平安以及容器外部平安,容器治理平台无缝集成并且实现利用级容器平安的自动化,实用于各种云环境、跨云或者本地部署等容器生产环境。

本文次要表述,基于 Rainbond 装置部署 NeuVector 容器平安平台的步骤,以及配合 Rainbond 实现生产环境中的最佳实际。

部署 NeuVector

NeuVector 有多种部署装置模式,为了更加简化装置,选用 helm 的模式进行装置,Rainbond 也是反对 helm 商店的模式,只须要在利用市场,增加一个新的商店,把 helm商店的URL 填写上即可。

筹备工作

创立团队

NeuVector 通常是装置在 neuvector 命名空间外面的,而在 Rainbond ,团队的概念则是对应 kubernetes 里命名空间,所以通过 helm 装置的时候,首先须要创立进去对应的团队,团队的英文名对应的则是该团队在集群中的命名空间,此处填写 neuvector,抉择对应集群即可。

<img src="https://static.goodrain.com/wechat/neuvector/1.png" style="zoom: 50%;" />

对接 helm 商店

Rainbond反对基于helm间接部署利用,所以接下来对接 neuvector 官网helm仓库,后续基于Helm商店部署 neuvector 即可, 在利用市场页面,点击增加商店,抉择helm商店,输出相干信息即可实现对接。

helm 商店地址:https://neuvector.github.io/n...

装置

在 helm 仓库找到 core 点击装置到 neuvector 团队里即可

批改默认的 key 以及 value

values 配置项:

registrydocker.io
tag5.0.0-preview.1
controller.image.repositoryneuvector/controller.preview
enforcer.image.repositoryneuvector/enforcer.preview
manager.image.repositoryneuvector/manager.preview
cve.scanner.image.repositoryneuvector/scanner.preview
cve.updater.image.repositoryneuvector/updater.preview
manager.svc.typeClusterIP

装置实现当前,确认 pod 的状态为 Running

<img src="https://static.goodrain.com/wechat/neuvector/5.png" style="zoom: 50%;" />

neuvector 提供了可视化操作的界面,装置过程将主动创立Service,通过Rainbond平台第三方组件的模式可将 neuvector 的拜访端口裸露进去。

<img src="https://static.goodrain.com/wechat/neuvector/6.png" style="zoom: 50%;" />

以下为须要进行配置的选项

组件名称neuvector-web
组件英文名称neuvector
组件注册形式kubernetes
Namespaceneuvector
Serviceneuvector-service-webui

增加实现当前,须要增加并关上对外拜访的端口(8443),默认用户名以及明码均为 admin/admin

留神:拜访的时候,须要通过 https 的模式进行拜访,至此 neuvector 装置结束

<img src="https://static.goodrain.com/wechat/neuvector/8.png" style="zoom: 50%;" />

NeuVector 最佳实际

网络流量监督治理

NeuVector 提供的网络流动,能够分明的查看每一个 pod 之间的网络流量动向。以及对应的端口,规定,更加清晰明了的查看走向。

蓝色线代表失常的流向是记录在学习模式里的。

黄色的流向则是记录在监督模式下,须要咱们手动进行审阅规定,决定是否通过这个流量。

红色则代表是记录在保护模式下,被回绝的动向,也可通过规定进行防止。

学习模式,监督模式,保护模式的应用

NeuVector 的组反对 3 种模式:学习模式、监控模式和保护模式;各个模式实现作用如下:

学习模式

学习和记录容器、主机间网络连接状况和过程执行信息。

主动构建网络规定白名单,爱护利用网络失常行为。

为每个服务的容器中运行的过程设定平安基线,并创立过程配置文件规定白名单。

监控模式

NeuVector 监督容器和主机的网络和过程运行状况,遇到非学习模式下记录的行为将在 NeuVector 安全事件中进行告警。

保护模式

NeuVector 监督容器和主机的网络和过程运行状况,遇到非学习模式下记录的行为间接回绝。

针对于以上三种模式,能够总结进去适于生产环境的最佳实际,当新的业务筹备上线的时候,能够先默认是学习模式,通过一段时间的学习,记录容器的以及主机的规定,而后转换成监控模式,运行一段时间,监控是否有非凡的网络流量以及主机过程,帮忙咱们把非凡的网络动向记录下来,并进行告警确认是否放行,最初转换成监控模式,防止一些歹意的操作对咱们的环境造成不必要的危险。

基于集群的镜像仓库做破绽查看

kubernetes 集群部署业务的最小单元是 pod 然而pod 的组成部分最重要的其实是镜像, NeuVector 也是能够基于镜像进行破绽查看,防止在镜像被注入非凡的破绽机制

对接 Rainbond 时,在不应用内部的镜像仓库的状况下,Rainbond 会提供一个默认的用于存储镜像的仓库 goodrain.me ,它是用来存储通过 Rainbond 构建的所有业务的镜像,所以通过查看外面的镜像,能够分明的看出业务所依赖的镜像都存在那些破绽,已防止因为镜像破绽问题所造成的影响。

如果在对接 Rainbond 时应用了内部的镜像仓库,且域名能够被解析到的状况,能够间接填写域名即可,因为 goodrain.me 自身是不能被 NeuVector 解析的,所以须要通过集群的 coredns 手动增加对应的解析,来确保 NeuVector 能够连贯上。

编辑coredns

kubectl edit cm coredns -n kube-system  

<img src="https://static.goodrain.com/wechat/neuvector/10.png" style="zoom:33%;" />

获取 goodrain.me 解析的 IP

kubectl get rainbondcluster -n rbd-system -oyaml | egrep -v [A-Za-z{}]

在指定地位增加以下内容,留神批改 IP

hosts {  192.168.0.1 goodrain.me  fallthrough}

在 NeuVector web界面左侧抉择 资产 > 镜像库 增加仓库

goodrain.me 默认用户为 admin,明码通过以下命令获取

 kubectl get rainbondcluster -n rbd-system -oyaml | grep password | sed "1d"

镜像扫描完结当前,镜像的信息会在上面进行出现,点击想要查看的镜像名称,即可查看详细信息,以下供参考

写在最初

通过本文,心愿大家能够基于 Rainbond 胜利把 NeuVector 容器平安平台部署起来,并且能够依据最佳实际,做好绝对应的操作,当然NeuVector 的性能远远不止于此,还是须要大家一直的摸索,一直的实际。