网络隔离的最小配置

news2024/12/25 9:10:29

作者:任云康,青云科技研发工程师

前言

对于项目下的网络隔离,有用户提出了以下疑问:

  • 网络隔离是针对 Pod 的吗?
  • 网络隔离的最小配置是什么?
    • 配置后,哪些是可以访问的,哪些是不可以访问的?
    • 通过 Ingress 暴露、LB 类型的 Service 暴露、NodePort 类型的 Service 暴露的流量的具体链路是什么样的?

KubeSphere 网络策略的实现思路

KubeSphere 对于 NetworkPolicy 的集成中主要包含:

  • 集群网络策略管理:主要提供一个原生的 NetworkPolicy 资源的管理,当 KubeSphere 租户网络隔离无法满足用户的全部需求时,可以在此通过 yaml 管理原生的 NetworkPolicy。

  • 租户网络隔离管理:分为企业空间网络隔离和项目空间的网络隔离。

    • 当开启企业空间网络隔离时,会自动为该企业空间的所有项目创建一条只允许本企业空间访问的入站规则的网络策略,默认不限制出站流量;
    • 当开启项目网络隔离时,会自动为该项目创建一条只允许项目访问的入站规则的网络策略;
    • 项目网络隔离下可以配置白名单列表,内部白名单允许当前项目中的容器组与当前企业空间其他项目中的服务进行通信,外部白名单允许当前项目中的容器组与企业空间外部的特定网段和端口进行通信;
    • 默认不限制出站流量;如果配置出站白名单,那只会放行白名单上的出站项。

出站:即对本项目下的 pod 是否可以访问本项目外的 pod/ip/port 的限制。 入站:即对本项目外的 pod/ip 是否可以访问本项目下的 pod 所提供的服务的限制。 注意:NetworkPolicy 是由具体的 CNI 来实现,KubeSphere 做了 UI 化的管理,同时封装了一个项目级别的 NetworkPolicy,用作项目空间的网络隔离。

因此,对前文的问题,我们有了答案:

  1. 网络隔离是针对与 pod 的,而项目网络隔离会匹配本项目下的所有 pod;也可以认为此处的网络隔离是针对项目的;
  2. 服务通过 Ingress、NodePort、LoadBalancer 暴露,表明 service 要给集群外提供服务,如果使用 KubeSphere 项目网络隔离进行管理的话,需要配置外部白名单。

配置

当我们通过 NodePort、LoadBalancer 暴露 Kubernetes 的 service 时,kube-proxy 会创建相应的 ipvs 或 iptables 规则来转发流量。然而,当外部流量进入集群并根据这些规则被转发时,如果目标 pod 不在本地节点上,就会进行一次源网络地址转换(SNAT),这将导致 TCP 包中的源 IP 地址被替换为节点 IP 或 overlay 封装接口的 IP,从而丢失了客户端的原始 IP。如果目标 pod 在本地节点上,可能会直接转发到本机 pod,此时会保留客户端 IP。

这里以 Calico 举例,如果使用的非 ipip/vxlan 模式,我们需要找到 node 上的 eth0 网口上的 IP;如果使用的是 ipip/vxlan 模式,需要找到 node 上的用于封装网卡的 IP,然后添加到外部白名单中放行。同时也要把客户端 IP 也添加到外部白名单中放行。

为了总是保留客户端的原始 IP,可以将 service 的外部访问策略设置为 Local。但是当流量进入没有目标 pod 的节点上时,流量不再进行转发导致请求失败。

配置 NodePort 暴露

当配置 service 为 NodePort 且配置外部访问策略为 Cluster 时,流量访问如下:

当配置 service 为 NodePort 且配置外部访问策略为 Local 时,流量访问如下:

开启项目网络隔离后,

  • 当外部访问策略为 Cluster ,需要在外部白名单中放行集群的所有节点 IP 或 overlay 封装接口的 IP、客户端 IP,缺点是可能会丢失客户端 IP,且由于 SNAT 的缘故无法拦截指定的 IP;
  • 当外部访问策略为 Local ,需要在外部白名单中放行可以访问该服务的客户端 IP,缺点需要确保使用运行了 pod 的节点 IP:NodePort 来访问 service,否则数据包会被丢弃,从而导致请求失败。

配置 LoadBalancer 暴露

当 service 设置为 LoadBalancer 时,你需要支持配置外部负载均衡器的环境,不同的环境技术实现也会有所不同,下面以 OpenELB 为例说明。

当配置 service 为 LoadBalancer 且配置外部访问策略为 Cluster 时,流量访问如下:

当配置 service 为 LoadBalancer 且配置外部访问策略为 Local 时,流量访问如下:

开启项目网络隔离后,

  • 当外部访问策略为 Cluster ,需要在外部白名单中放行集群的所有节点 IP 或 overlay 封装接口的 IP、客户端 IP,缺点是可能会丢失客户端 IP,且由于 SNAT 的缘故无法拦截指定的 IP;
  • 当外部访问策略为 Local ,需要在外部白名单中放行可以访问该服务的客户端 IP,OpenELB 只会将访问 LoadBalancer serviceip 的流量转发到已经运行了 pod 的节点上。

配置 Ingress 暴露

当配置 Ingress 访问时,集群内部不同的 service 需要注册相应的应用路由,同时 Ingress svc 依旧需要通过 LoadBalancer 或者 NodePort 对外暴露,访问流量如下图:

对于 LoadBalancer 或者 NodePort 对外暴露可见我们上述探讨。

更多技术原理可参考 kubernetes networkpolicy:

  • https://kubernetes.io/zh-cn/docs/tasks/access-application-cluster/create-external-load-balancer/
  • https://kubernetes.io/zh-cn/docs/concepts/services-networking/network-policies/

本文由博客一文多发平台 OpenWrite 发布!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[笔试训练](六)

016 大数加法_牛客题霸_牛客网 (nowcoder.com) 题目: 题解: 由于相加超过10要进位,因此需要从从后往前将每个数相加得到tmp,超过10时,该位只放tmp%10后的结果,同时将tmp/10,进入下一位的相加…

冯老师降维打击申论课

冯老师降维打击申论课,以其独到的见解和精湛的教学技巧,将复杂的申论知识变得简单易懂。通过深入浅出的讲解,帮助考生迅速掌握申论精髓,轻松应对考试。课程内容丰富实用,深受考生好评,是备考申论的不二之选…

观鸟,一场真实世界的宝可梦游戏

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 卷圈 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 卷圈 姝琦 产品统筹 / bobo 场地支持 / 声湃轩天津录音间 春天来了,是时候出门观鸟了! 如果说城市公园20分钟效应是短暂逃离生活压力的手段。 那…

一些常见的Windows命令

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言看版本号查找端口启动程序杀死某个端口查看全部端口看ip进入目录就是总结 前言 提示:这里可以添加本文要记录的大概内容: 例如&#x…

MessageBox的模版语法上如何注册事件

目标: 想要在MessageBox中的文本中写一些事件,如何处理 在vue中进行操作: coding // 弹窗提示 this.$confirm({customClass: "add-fail",title: this.$t(add_error),type: error,dangerouslyUseHTMLString: true, // 将消息使用…

21-22 - 线性表的链式存储结构 单链表的具体实现

---- 整理自狄泰软件唐佐林老师课程 文章目录 1. 线性表的链式存储结构1.1 定义1.2 逻辑结构1.3 专业术语的统一 2. 链表的基本概念2.1 单链表中的结点定义2.2 单链表中的内部结构2.3 在目标位置处插入数据元素2.4 在目标位置处删除数据元素 3. 链式存储结构线性表的实现3.1 设…

Git-Gitlab中如何创建项目、创建Repository、以及如何删除项目

目录 概念过程创建项目创建Repository创建分支使用IDEA删除项目 git常用命令基础命令拉取远程代码方式一拉取远程代码方式二 概念 GitLab是一个基于Git的版本控制系统,它提供了一个Web界面,可以让用户更方便地进行代码管理、版本管理、协作开发等工作。G…

嵌入式物联网实战开发笔记-乐鑫ESP32开发环境ESP-IDF搭建【doc.yotill.com】

乐鑫ESP32入门到精通项目开发参考百例下载: 链接:百度网盘 请输入提取码 提取码:4e33 3.1 ESP-IDF 简介 ESP-IDF(Espressif IoT Development Framework)是乐鑫(Espressif Systems)为 ESP 系列…

云计算时代,企业面临的云安全风险

如今,随着云计算等新兴科技的发展,不同类型企业间的关联越来越多,它们之间的业务边界已被打破,企业上云成为了大势所趋。云计算应用帮助企业改变了IT资源不集中的状况,同时,数据中心内存储的大量数据信息&a…

R语言使用sjPlot包优雅绘制回归模型的交互效应图

交互作用效应(p for Interaction)在SCI文章中可以算是一个必杀技,几乎在高分的SCI中必出现,因为把人群分为亚组后再进行统计可以增强文章结果的可靠性,进行可视化后可以清晰的表明变量之间的关系。不仅如此,交互作用还可以使用来进…

劳保工具佩戴监测识别摄像机

随着工业生产技术的不断进步和劳动保护意识的提高,劳保工具的佩戴已成为维护工人安全健康的重要环节。为了更好地监测和识别工人是否正确佩戴劳保工具,以及工作场所是否存在安全隐患,智能劳保工具佩戴监测识别摄像机应运而生。这种摄像机结合…

GoLand远程开发IDE:使用SSH远程连接服务器进行云端编程

目录 ⛳️推荐 1. 安装配置GoLand 2. 服务器开启SSH服务 3. GoLand本地服务器远程连接测试 4. 安装cpolar内网穿透远程访问服务器端 4.1 服务器端安装cpolar 4.2 创建远程连接公网地址 5. 使用固定TCP地址远程开发 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&am…

C语言 | Leetcode C语言题解之第49题字母异位词分组

题目: 题解: /*1.将字符串原串与副本进行绑定成一个节点2.对字符串副本进行按ascii码表进行从小到大排序3.按照字符串进行比较排序4.合并 */ typedef struct Node{char*s;char*s_vice;int len; }Node;void sortShellChar(char*s,int len){for(int dista…

推荐3个视频转文字的工具

如果是长视频转文字的话,我会推荐你三个专业的能够将视频文字提取出来的工具,操作无门槛,转换出的文字准确率高,可以直接导出文字。 1.一键识别王 https://www.xunjiepdf.com/yijianshibiewang 专业的图片文字识别软件&#xff0…

依赖型人格的症状和起因,依赖型人格测试和应对方法

每个人的性格不同,对待同一件事的处理方式也不一样,很多人在独自面对某些事情的时候,会有非常明显的无助感和孤独感,他们没办法照顾自己,也无法独立作出决定,只能依赖别人。 这种过度依赖的特质就是依赖型…

LT8711UXD助力新款Swtich游戏机底座《4K/60HZ投屏方案》

Nintendo Switch(OLED版)正面搭载了一块分辨率为720P的7.0英寸OLED屏幕;具有白色和电光蓝电光红2种颜色;机身长度102毫米,宽度242毫米,厚度13.9毫米,重量约420克。 [2]Nintendo Switch&#xff…

《架构风清扬-Java面试系列第26讲》聊聊的LinkedBlockingQueue的特点及使用场景

LinkedBlockingQueue也是BlockingQueue接口的一个实现类之一 这个属于基础性问题,老规矩,我们将从使用场景和代码示例来进行讲解 来,思考片刻,给出你的答案 1,使用场景 实现:基于链表实现的阻塞队列&#…

后端工程师——Java工程师面试小结

在国内,Java 程序员是后端开发工程师中最大的一部分群体,其市场需求量也是居高不下,C++ 程序员也是热门岗位之一,此二者的比较也常是热点话题,例如新学者常困惑的问题之一 —— 后端开发学 Java 好还是学 C++ 好。读完本文后,我们可以从自身情况、未来的发展,岗位需求量…

Windows安装Elasticsearch 7.9.2

1 下载 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-windows-x86_64.zip 2 配置 进入config目录,打开elasticsearch.yml文件,给集群和节点配置名称。 cluster.name: my-es node.name: node-1 3 启动 打开bin目录&am…

​第三方支付方式有哪些?

​第三方支付方式有哪些? 编辑搜图 请点击输入图片描述(最多18字) 随着电子商务和移动互联网的快速发展,第三方支付方式已经成为我们生活中不可或缺的一部分。这些支付方式不仅为我们提供了方便快捷的交易途径,还在保…