网易首页 > 网易号 > 正文 申请入驻

Kubernetes 网络策略基础 | Linux 中国

0
分享至

导读:在你通过 Kubernetes 部署一个应用之前,了解 Kubernetes 的网络策略是一个基本的要求。

本文字数:4780,阅读时长大约: 6分钟

https://linux.cn/article-14005-1.html
作者:Mike Calizo
译者:perfiffer

随着越来越多的云原生应用程序通过 Kubernetes 部署到生产环境,安全性是你必须在早期就需要考虑的一个重要检查项。在设计云原生应用程序时,预先嵌入安全策略非常重要。不这样做会导致后续的安全问题,从而导致项目延迟,并最终给你带来不必要的压力和金钱投入。

这么多年来,人们总是把安全留到最后,直到他们的部署即将发布到生产环境时才考虑安全。这种做法会导致项目交付的延迟,因为每个组织都有要遵守的安全标准,这些规定被绕过或不遵守,并承受大量的风险才得以实现可交付成果。

对于刚开始学习 Kubernetes 实施的人来说,理解 Kubernetes 网络策略(NetworkPolicy) 可能会令人生畏。但这是在将应用程序部署到 Kubernetes 集群之前必须了解的基本要求之一。在学习 Kubernetes 和云原生应用程序时,请把“不要把安全抛在脑后!”定为你的口号。

网络策略概念

kubernetes.io(NetworkPolicy) 取代了你所知道的数据中心环境中的防火墙设备 —— 如吊舱(Pod)之于计算实例、网络插件之于路由器和交换机,以及卷之于存储区域网络(SAN)。

默认情况下,Kubernetes 网络策略允许 kubernetes.io(Pod) 从任何地方接收流量。如果你不担心吊舱的安全性,那么这可能没问题。但是,如果你正在运行关键工作负载,则需要保护吊舱。控制集群内的流量(包括入口和出口流量),可以通过网络策略来实现。

要启用网络策略,你需要一个支持网络策略的网络插件。否则,你应用的任何规则都将变得毫无用处。

kubernetes.io 上列出了不同的网络插件:

◈ CNI 插件:遵循 github.com(Container Network Interface)(CNI)规范,旨在实现互操作性。

◈ Kubernetes 遵循 CNI 规范的 github.com 版本。

◈ Kubernetes 插件:使用桥接器和主机本地 CNI 插件实现基本的 cbr0

应用网络策略

要应用网络策略,你需要一个工作中的 Kubernetes 集群,并有支持网络策略的网络插件。

但首先,你需要了解如何在 Kubernetes 的环境使用网络策略。Kubernetes 网络策略允许 kubernetes.io 从任何地方接收流量。这并不是理想情况。为了吊舱安全,你必须了解吊舱是可以在 Kubernetes 架构内进行通信的端点。

1、使用 podSelector 进行吊舱间的通信:

  1. - namespaceSelector:

  2. matchLabels:

  3. project: myproject

2、使用 namespaceSelector 和/或 podSelectornamespaceSelector 的组合进行命名空间之间的通信和命名空间到吊舱的通信。:

  1. - namespaceSelector:

  2. matchLabels:

  3. project: myproject

  4. - podSelector:

  5. matchLabels:

  6. role: frontend

3、对于吊舱的 IP 块通信,使用 ipBlock 定义哪些 IP CIDR 块决定源和目的。

  1. - ipBlock:

  2. cidr: 172.17.0.0/16

  3. except:

  4. - 172.17.1.0/24

注意吊舱、命名空间和基于 IP 的策略之间的区别。对于基于吊舱和命名空间的网络策略,使用选择器来控制流量,而对基于 IP 的网络策略,使用 IP 块(CIDR 范围)来定义控制。

把它们放在一起,一个网络策略应如下所示:

  1. apiVersion: networking.k8s.io/v1

  2. kind: NetworkPolicy

  3. metadata:

  4. name: test-network-policy

  5. namespace: default

  6. spec:

  7. podSelector:

  8. matchLabels:

  9. app: backend

  10. policyTypes:

  11. - Ingress

  12. - Egress

  13. ingress:

  14. - from:

  15. - ipBlock:

  16. cidr: 172.17.0.0/16

  17. except:

  18. - 192.168.1.0/24

  19. - namespaceSelector:

  20. matchLabels:

  21. project: myproject

  22. - podSelector:

  23. matchLabels:

  24. role: frontend

  25. ports:

  26. - protocol: TCP

  27. port: 6379

  28. egress:

  29. - to:

  30. - ipBlock:

  31. cidr: 10.0.0.0/24

  32. ports:

  33. - protocol: TCP

  34. port: 5978

参考上面的网络策略,请注意 spec 部分。在此部分下,带有标签 app=backendpodSelector 是我们的网络策略的目标。简而言之,网络策略保护给定命名空间内称为 backend 的应用程序。

此部分也有 policyTypes 定义。此字段指示给定策略是否适用于选定吊舱的入口流量、选定吊舱的出口流量,或两者皆有。

  1. spec:

  2. podSelector:

  3. matchLabels:

  4. app: backend

  5. policyTypes:

  6. - Ingress

  7. - Egress

现在,请看 Ingress(入口)和 Egress(出口)部分。该定义规定了网络策略的控制。

首先,检查 ingress from 部分。

此实例中,网络策略允许从以下位置进行吊舱连接:

ipBlock

◈ 允许 172.17.0.0/16

◈ 拒绝 192.168.1.0/24

namespaceSelector

myproject: 允许来自此命名空间并具有相同标签 project=myproject 的所有吊舱。

podSelector

frontend: 允许与标签 role=frontend 匹配的吊舱。

  1. ingress:

  2. - from:

  3. - ipBlock:

  4. cidr: 172.17.0.0/16

  5. except:

  6. - 192.168.1.0/24

  7. - namespaceSelector:

  8. matchLabels:

  9. project: myproject

  10. - podSelector:

  11. matchLabels:

  12. role: frontend

现在,检查 egress to 部分。这决定了从吊舱出去的连接:

ipBlock

◈ 10.0.0.0/24: 允许连接到此 CIDR

◈ Ports: 允许使用 TCP 和端口 5978 进行连接

  1. egress:

  2. - to:

  3. - ipBlock:

  4. cidr: 10.0.0.0/24

  5. ports:

  6. - protocol: TCP

  7. port: 5978

网络策略的限制

仅靠网络策略无法完全保护你的 Kubernetes 集群。你可以使用操作系统组件或 7 层网络技术来克服已知限制。你需要记住,网络策略只能解决 IP 地址和端口级别的安全问题 —— 即开放系统互联(OSI)中的第 3 层或第 4 层。

为了解决网络策略无法处理的安全要求,你需要使用其它安全解决方案。以下是你需要知道的一些 kubernetes.io,在这些用例中,网络策略需要其他技术的增强。

总结

了解 Kubernetes 的网络策略很重要,因为它是实现(但不是替代)你通常在数据中心设置中使用的防火墙角色的一种方式,但适用于 Kubernetes。将此视为容器安全的第一层,仅仅依靠网络策略并不是一个完整的安全解决方案。

网络策略使用选择器和标签在吊舱和命名空间上实现安全性。此外,网络策略还可以通过 IP 范围实施安全性。

充分理解网络策略是在 Kubernetes 环境中安全采用容器化的一项重要技能。

via:

作者: 选题: 译者: 校对:

本文由 原创编译, 荣誉推出

欢迎遵照 CC-BY-NC-SA 协议规定转载,

如需转载,请在文章下留言 “ 转载:公众号名称”,

我们将为您添加白名单,授权“ 转载文章时可以修改”。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
一箱油半箱税:3 亿油车养全国马路,既大且重的电车还能白蹭多久

一箱油半箱税:3 亿油车养全国马路,既大且重的电车还能白蹭多久

电科技网
2026-07-04 18:12:17
张继科看了两眼哈兰德跑步,丢下一句话,直接把整个直播间干沉默

张继科看了两眼哈兰德跑步,丢下一句话,直接把整个直播间干沉默

童叔不飙车
2026-06-23 01:17:32
冯小刚早年没背景,给王朔当跟屁虫,还被叶京起外号,全国都知道

冯小刚早年没背景,给王朔当跟屁虫,还被叶京起外号,全国都知道

郭蛹包工头
2026-07-06 15:35:07
2026年最难就业的专业出炉:土木第3,会计第2,第1名出乎意料

2026年最难就业的专业出炉:土木第3,会计第2,第1名出乎意料

辉哥说动漫
2026-07-06 15:31:28
7投11分!庞峥麟神级首秀!中国男篮小组赛出线

7投11分!庞峥麟神级首秀!中国男篮小组赛出线

篮球实战宝典
2026-07-06 15:58:25
俄罗斯再次绝杀!俄乌前线,可怕内幕曝光了!

俄罗斯再次绝杀!俄乌前线,可怕内幕曝光了!

大嘴说天下
2026-07-03 19:36:06
莫迪难得清醒!刚送走高市,便派心腹抵达中国,全面加深对华合作

莫迪难得清醒!刚送走高市,便派心腹抵达中国,全面加深对华合作

霁寒飘雪
2026-07-06 16:59:34
巴洛贡禁赛缓期!波切蒂诺:如果说这件事谁受了伤害,那就是美国

巴洛贡禁赛缓期!波切蒂诺:如果说这件事谁受了伤害,那就是美国

砚底沉香
2026-07-06 16:05:43
7.6世界杯淘汰赛:美国vs比利时

7.6世界杯淘汰赛:美国vs比利时

乌鸦侃球战术板
2026-07-06 11:37:28
内娱"下限"又刷新了,周深再陷“不男不女”争议,原来李晨没说错

内娱"下限"又刷新了,周深再陷“不男不女”争议,原来李晨没说错

星娱叨叨社
2026-07-06 16:28:44
外交部:德方应当客观理性看待中方的立场和作用

外交部:德方应当客观理性看待中方的立场和作用

新京报
2026-07-06 16:03:17
美股芯片存储板块盘前反弹 闪迪、西部数据、希捷科技涨超5%

美股芯片存储板块盘前反弹 闪迪、西部数据、希捷科技涨超5%

每日经济新闻
2026-07-06 16:06:03
中国人民解放军江苏省军区

中国人民解放军江苏省军区

音乐时光的娱乐
2026-07-06 10:12:54
官宣了!中国战略核潜艇向太平洋,发射潜射洲际导弹

官宣了!中国战略核潜艇向太平洋,发射潜射洲际导弹

第一军情
2026-07-06 14:11:54
今日重要赛事!7月6日,CCTV5直播世界杯+中国男篮、CCTV5+节目表

今日重要赛事!7月6日,CCTV5直播世界杯+中国男篮、CCTV5+节目表

薇说体育
2026-07-06 10:25:39
阿斯:英格兰能拿下胜利,一切都源于表现断层领先全队的贝林厄姆

阿斯:英格兰能拿下胜利,一切都源于表现断层领先全队的贝林厄姆

云隐南山
2026-07-06 13:35:02
人民日报:机关事业单位工作优势下降,隐性收入减少,引发共鸣!

人民日报:机关事业单位工作优势下降,隐性收入减少,引发共鸣!

细说职场
2026-07-06 11:08:22
大风追踪|给心梗老人一次拔12颗牙种10颗,宝鸡渭滨区卫健局市监局全面调查处置,将对大团圆口腔医院顶格行政处罚

大风追踪|给心梗老人一次拔12颗牙种10颗,宝鸡渭滨区卫健局市监局全面调查处置,将对大团圆口腔医院顶格行政处罚

大风新闻
2026-07-05 22:08:03
墨西哥前锋:我们是站着离开的,墨西哥可以和世界强队竞争

墨西哥前锋:我们是站着离开的,墨西哥可以和世界强队竞争

懂球帝
2026-07-06 17:08:18
万人空巷的震撼 佛得角载誉回国 机场地勤下跪膜拜 球迷夹道欢迎

万人空巷的震撼 佛得角载誉回国 机场地勤下跪膜拜 球迷夹道欢迎

我爱英超
2026-07-05 22:41:06
2026-07-06 17:36:49
Linux
Linux
Linux 中国开源社区
8018文章数 73111关注度
往期回顾 全部

科技要闻

WPS滥收费、背刺用户?官方回应

头条要闻

99万机器人"伴侣"续航撑不过一晚 优必选回应

头条要闻

99万机器人"伴侣"续航撑不过一晚 优必选回应

体育要闻

世界杯最强17岁,贝林厄姆主动和他交换球衣

娱乐要闻

全红婵回老家罕见跳舞,不跳水了?

财经要闻

6天赌光2.8亿 !赵薇前夫赌桌往事曝光

汽车要闻

纵置后驱2.3T+10AT 新款福特探险者售30.98万起

态度原创

家居
时尚
本地
房产
健康

家居要闻

2026建博会(广州) 公装联探展交流活动

“雕塑感穿搭”突然大火!时髦的人都在穿

本地新闻

国内足球之旅?这座小城给你高分答案

房产要闻

前所未有!这个大盘,定义了海口另一种生活!

听说少吃点能抗衰老?专家讲解!

无障碍浏览 进入关怀版