前言
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 配置项:
键 | 值 |
---|---|
registry | docker.io |
tag | 5.0.0-preview.1 |
controller.image.repository | neuvector/controller.preview |
enforcer.image.repository | neuvector/enforcer.preview |
manager.image.repository | neuvector/manager.preview |
cve.scanner.image.repository | neuvector/scanner.preview |
cve.updater.image.repository | neuvector/updater.preview |
manager.svc.type | ClusterIP |
装置实现当前,确认 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 |
Namespace | neuvector |
Service | neuvector-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 的性能远远不止于此,还是须要大家一直的摸索,一直的实际。