03.neuvector之组的划分逻辑

neuvector之组的划分逻辑

原文链接,欢迎大家关注我的github账号

一、组的定义

NeuVector 会自动从正在运行的应用程序中创建组。这些组以前缀‘nv‘开头。您也可以使用 CRD 或 REST API 手动添加它们,并且可以在任何模式下创建、发现、监视或保护。网络和响应规则需要这些组定义。对于自动创建的组(以“nv”开头的“学习”组) ,NeuVector 将学习网络和处理规则,并在发现模式下添加它们。自定义组不会自动学习和填充规则。注意: nv组开始时默认为进程/文件保护启用零漂移。

二、组的类型

neuvector组的类型分为三种:

  • 自定义组: 用户根据自定义的条件创建对应的组,自定义组不支持模式策略等;(支持相应规则、DLP\WAF检测、当NeuVector 无法识别内部网络,将其归类为“外部”网络时,可以为其指定内部服务的 DNS 名称、IP 地址或地址范围作为新的组,以避免被外部攻
    击。 )
  • crd生成的组:根据yaml文件内容生成对应的组;
  • 系统生成的组:neuvector自己学习生成的组

其中系统生成的组的类型可分为以下四种:

  1. nodes:根据集群节点集合生成的组
  2. external:外部组,主要用于查看与外部通信的网络规则
  3. service组:其中还有k8s的service也会生成相关组,命名规则为nv+.+ip.+service的名称+.+domain,但是这种类型的组不具备策略
    切换等操作,界面显示组时也会对传入并且属于内部(没有选择器的)的service类型组进行隐藏;
  4. 容器与pod组:根据组名分组,容器的组名生成逻辑为groupName=nv+.+serviceName+.+domain; 其中domain为命名空间,无命名空间则为空(例如docker、containerd容器);serviceName通过global.ORCH.GetService(&info.ContainerMeta)方法获取对应的serviceName;

三、代码中执行流程

neuvector组的生成流程图如下:

image.png

四、关键函数解析

GetService方法执行流程如下图 :

image.png

GetService根据不同的平台调用不同的方法:
当为k8s平台时:

  1. 首先查找容器有没有为deploymentconfig的标签,有则直接以deploymentconfig标签的值作为serviceName进行返回;
  2. 无则继续查看容器有没有为io.kubernetes.pod.name的标签,有的情况下分以下五种情况:
    2.1 如果k8s的flavor为rancher,并且这个容器的pod命名空间为"cattle-system",则判断这个pod的前缀和rancher相关的pod名称前缀
    (“rancher-agent-”,“core-services-dns-”,“core-services-metadata-”,“core-services-healthcheck-”,“core-services-network-manager-”)
    匹配,如果前缀匹配的话,将前缀作为serviceName进行返回;
    2.2 当2.1不满足时,查看容器是否有"pod-template-hash"的标签, 有则去掉pod名称的hash值然后作为serviceName进行返回;( pod.
    name比如采用如下格式: calico-node-m308t,其中-hash值是m308t,如果存在哈希标签,则删除它。serviceName为calico-node)
    2.3主要路径: 当2.1、2.2不满足时,判断pod名称是否满足正则表达式"^.*-[a-f0-9]{6,10}-[a-z0-9]{5} " 或者 " . ∗ − [ 0 − 9 ] 1 , 5 − [ a − z 0 − 9 ] 5 "或者"^.*-[0-9]{1,5}-[a-z0-9]{5} "或者".[09]1,5[az09]5"的
    pod名称,满足则以最后一个“-“作为分割线,将”-“之前的字符串作为serviceName进行返回;
    2.4 以上都不满足时,判断pod名称是否存在”-“字符,则以最后一个“-“作为分割线,将”-“之前的字符串作为serviceName进行返回;
    2.5 以上都不满足时,直接将pod名称作为serviceName进行返回;
  3. 当上述1、2都不满足时,直接调用baseDriver.GetService(meta)方法;
    3.1查看容器是否带有"com.docker.compose.project"、“com.docker.compose.service"标签也就是是否为docker compose方式部署 ,是则将(project + “.” + service)作为serviceName进行返回,其中service为"com.docker.compose.service"标签的值,project值为"Docker.Trusted.Registry"或者"Docker.UCP”
    3.2 无则查看容器是否带有"com.docker.swarm.service.name"也就是docker swarm方式部署,是则直接以标签的值作为serviceName进行返回;
    3.3 以上都不满足时,直接调用container.TrimContainerImageRepo(container.TrimContainerImageVersion(meta.Image)方法的返回值作为serviceName进行返回, 方法大概逻辑为去掉镜像的仓库前缀以及版本标签(以docker/controller:latest为例, serviceName为docker:controller);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/317554.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【嵌入式移植】3、编译U-Boot

编译U-Boot 0 U-Boot及本文所选硬件1 获取U-Boot源码2 获取工具链3 BL314 编译4.1 yylloc4.2 u_boot_dtsi 5 烧写6 上电验证 0 U-Boot及本文所选硬件 Das U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。U-Boot的作用是系统引导。U-B…

Android 12.0 系统开启和关闭黑白模式主题功能

1.概述 在12.0的rom系统开发定制化中,在系统SystemUI的下拉状态栏中,产品开发功能需求要求添加黑白模式功能开关的功能,就是打开黑白模式,系统颜色就会变成黑白颜色, 关闭黑白模式开关系统就会变成彩色模式,所以就需要了解下系统是怎么设置黑白模式和彩色模式的,然后添…

好大夫问诊数据爬虫记录

好大夫问诊数据爬虫入库字段记录 获取医生的病程列表 uid Column(Integer, primary_keyTrue, autoincrementTrue) gender Column(String(10)) # 性别 age Column(Integer) # 年龄 # 总交流次数 total_communication_times Column(Integer) # 医生回复次数 doctor_reply_t…

重学Java 4 进制转换和位运算

天赋不好好使用的话,可是会被收回的哦 ——24.1.13 一、进制转换 1.常用的进制 2.十进制和二进制之间的转换 1.十进制转二进制 辗转相除法——循环除以2,取余数,除到商为0为止,除完后,由下往上,得出换算后…

黏菌优化算法MATLAB实战[免费]

一、算法原理 黏菌算法(Slime mould algorithm,SMA)是模拟黏菌捕食行为的一种仿生算法。黏菌根据气味识别到食物后,通过细胞质的流动形成多个叶脉,同时向多个食物进行移动,当叶脉接近食物源时,黏菌的生物振…

PADS 改变图纸和图页边界大小

PADS 改变图纸和图页边界大小 有时候画一画原理图发现画布不够用了,可改变图纸大小,对应的改变图页边界 若图页边界怎么选择都改变不了,可将途中图页边界删除,重新加载 选择对应的图页边距就好啦 分类: PADS

竞赛保研 基于计算机视觉的身份证识别系统

0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于机器视觉的身份证识别系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-sen…

软件测试|pycharm关联GitHub的详细步骤

简介 GitHub 是全球最大的开源代码托管平台之一,而 PyCharm 是一款强大的 Python 集成开发环境。将两者结合使用,可以提高团队协作和代码管理的效率。本文将详细介绍如何在 PyCharm 中管理 GitHub 账号,包括如何设置 GitHub 账号、创建新仓库…

伴鱼实时数仓建设案例

伴鱼实时数仓建设案例 文章目录 伴鱼实时数仓建设案例伴鱼实时作业应用场景伴鱼实时数仓的建设体系DWD 层复杂场景数据处理方案1. 数据的去重2. join场景两条实时数据流相关联对于关联历史数据 3. 从数据形态观查join DWS 数据层数据处理方案未来与展望 随着伴鱼业务的快速发展…

JUC之CompletableFuture

Future接口理论 Future接口定义了异步任务执行的一些方法&#xff0c;包括异步任务执行结果&#xff0c;异步任务执行是否中断&#xff0c;异步任务是否完毕等。 Future接口常用实现类FutureTask异步任务 FutureTask<String> futureTask new FutureTask<String>…

企业网盘:实现数据跨境传输,助力企业出海的必备工具

今年是“一带一路”十周年。在这十年间&#xff0c;中国和“一带一路”共建国家携手并行&#xff0c;贸易持续增长发展。在如今经济全球化的大方向下&#xff0c;跨国经济合作将会是各国共识。 目前&#xff0c;中外合作企业、跨境企业已成为国际贸易发展趋势。不过&#x…

扩展欧几里得算法

文章目录 扩展欧几里得算法的内容及证明扩展欧几里得算法的代码实现扩展欧几里得算法的用途 本文的问题场景中&#xff0c;涉及到的变量均为整数。 扩展欧几里得算法的内容及证明 贝祖等式&#xff1a; a x b y g c d ( a , b ) c axby gcd(a, b) c axbygcd(a,b)c 其中 …

PLC数组队列搜索FC(SCL代码+梯形图程序)

根据输入数据搜索输入数据队列中和输入数据相同的数,函数返回其所在队列的位置。这里我们需要用到博途PLC的数组指针功能,有关数组指针的详细使用方法,可以参考下面文章: 博途PLC数组指针: https://rxxw-control.blog.csdn.net/article/details/134761364 区间搜索FC …

软件测试|Git:fatal: refusing to merge unrelated histories错误分析与解决

问题介绍 在使用Git时&#xff0c;有时我们可能会遇到以下错误消息&#xff1a; fatal: refusing to merge unrelated histories这个错误通常发生在尝试合并两个不相关的Git仓库历史时。在本文中&#xff0c;我们将详细解释为什么会出现这个错误以及如何解决它。 问题分析 …

代码随想录算法训练营第四天 | 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II

代码随想录算法训练营第四天 | 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II 文章目录 代码随想录算法训练营第四天 | 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II1 Le…

CSS样式学习

html超文本传输标签&#xff0c;属性等权重 outline 标签轮廓 <input type"text"> <textarea cols"30" rows"10"></textarea> outline: none; 表示无轮廓 &#xff08;开发时用的比较多&#xff09; CSS 轮廓&#xff…

大创项目推荐 深度学习疫情社交安全距离检测算法 - python opencv cnn

文章目录 0 前言1 课题背景2 实现效果3 相关技术3.1 YOLOV43.2 基于 DeepSort 算法的行人跟踪 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习疫情社交安全距离检测算法 ** 该项目较为新颖&#xff0c;适合作为竞赛…

【踩坑】flask_uploads报错cannot import name ‘secure_filename‘

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 背景说明 截至目前&#xff0c;用新版的flask实现文件上传(用到flask_uploads库)&#xff0c;会出现这个问题。 问题原因 版本问题&#xff0c;新的werkzeug已经把secure_filename的位置改了。 解决方法 手动修改…

第23集《佛法修学概要》

庚二、不偷盗分五&#xff1a;辛一、解释名义&#xff1b;辛二、具缘成犯&#xff1b;辛三、犯戒轻重&#xff1b;辛四、开缘情况&#xff1b;辛五、持犯得失 请大家打开讲义第六十五页。我们看庚二、不偷盗。 这一科&#xff0c;我们讲到人天乘的法门。五戒十善为什么叫人天…

【数模百科】距离美赛还有20天,不要忘了阅读往年获奖论文(附04-23年美赛获奖论文)

之前发了很多数模相关的知识&#xff0c;受到了一些人的关注&#xff0c;也有很多人私下问我&#xff0c;距离美赛还有20几天了&#xff0c;还来不来得及。 对此我想说&#xff0c; 来不来得及重要吗&#xff1f; 你名都报了&#xff0c;钱也交了&#xff0c;还是笔不小的钱…