当前位置: 首页 > article >正文

Kubernetes 网络策略(NetworkPolicy)完全指南:声明式 Pod 通信管控

Kubernetes 网络策略NetworkPolicy完全指南声明式 Pod 通信管控1. Before you begin前置条件1.1 核心要求Kubernetes 集群需支持 NetworkPolicy APIKubernetes 1.7 版本默认支持。部署支持网络策略的网络插件以下按字母排序无推荐优先级CalicoRomanaWeave 网络本文示例适用于所有上述网络插件无需修改配置即可直接使用。2. 创建 Nginx Deployment 并暴露服务作为演示目标先创建被访问的 Nginx 服务后续通过网络策略限制其访问权限2.1 部署 Nginx 应用# 创建 Deployment2 个副本 $ kubectl run nginx --imagenginx --replicas2 # 暴露 ServiceClusterIP 类型端口 80 $ kubectl expose deployment nginx --port802.2 验证资源状态$ kubectl get svc,pod # 预期输出确认 Nginx Pod 运行正常、Service 已创建 NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/kubernetes 10.100.0.1 443/TCP 46m svc/nginx 10.100.0.16 0/TCP 33s NAME READY STATUS RESTARTS AGE po/nginx-701339712-e0qfq 1/1 Running 0 35s po/nginx-701339712-o00ef 1/1 Running 0 35s3. 测试服务能够被其它 Pod 访问默认情况下Kubernetes 集群内 Pod 可自由通信。验证无网络策略时其他 Pod 能否访问 Nginx 服务# 启动临时 busybox Pod执行后进入交互终端 $ kubectl run busybox --rm -ti --imagebusybox /bin/sh # 在交互终端中测试访问 Nginx Service--spider 仅检查连通性不下载内容 wget --spider --timeout1 nginx # 成功输出Connecting to nginx (10.100.0.16:80)无超时结论无网络策略时任意 Pod 可访问 Nginx 服务。4. 限制访问 Nginx 服务创建 NetworkPolicy通过 NetworkPolicy 定义规则仅允许带有access: true标签的 Pod 访问 Nginx 服务。4.1 编写 NetworkPolicy 配置文件创建nginx-policy.yaml内容如下kind: NetworkPolicy apiVersion: networking.k8s.io/v1 # 核心 API 版本必填 metadata: name: access-nginx # 网络策略名称 spec: podSelector: # 目标 Pod 选择器指定保护哪些 Pod matchLabels: run: nginx # 匹配 Nginx Pod 的标签与 Deployment 一致 ingress: # 入站规则允许哪些流量进入目标 Pod - from: - podSelector: # 来源 Pod 选择器仅允许带以下标签的 Pod 访问 matchLabels: access: true # 允许标签accesstrue4.2 核心字段说明字段作用podSelector定义策略作用的目标 Pod通过标签匹配本文中为 Nginx Podingress.from.podSelector定义允许访问的来源 Pod通过标签匹配本文中为带access: true的 PodapiVersion必须指定为networking.k8s.io/v1标准稳定版 API5. 为服务指定策略应用 NetworkPolicy执行以下命令创建网络策略$ kubectl create -f nginx-policy.yaml # 成功输出networkpolicy access-nginx created # 验证策略是否生效 $ kubectl get networkpolicy NAME POD-SELECTOR AGE access-nginx runnginx 10s6. 当访问标签没有定义时测试访问服务验证无access: true标签的 Pod 是否被拒绝访问# 启动无标签的 busybox Pod交互模式 $ kubectl run busybox --rm -ti --imagebusybox /bin/sh # 测试访问 Nginx 服务 wget --spider --timeout1 nginx # 失败输出wget: download timed out请求超时策略生效结论无指定标签的 Pod 被网络策略拦截无法访问 Nginx 服务。7. 定义访问标签后再次测试验证带有access: true标签的 Pod 是否允许访问# 启动带标签的 busybox Pod--labels 指定标签 $ kubectl run busybox --rm -ti --labelsaccesstrue --imagebusybox /bin/sh # 测试访问 Nginx 服务 wget --spider --timeout1 nginx # 成功输出Connecting to nginx (10.100.0.16:80)无超时访问允许结论符合标签条件的 Pod 可正常访问 Nginx 服务网络策略按预期生效。扩展NetworkPolicy 核心能力补充1. 更多规则配置示例允许特定命名空间的 Pod 访问ingress: - from: - namespaceSelector: # 匹配命名空间标签 matchLabels: environment: production允许特定 IP 段访问ingress: - from: - ipBlock: cidr: 192.168.0.0/16 # 允许的 IP 段 except: - 192.168.1.0/24 # 排除的 IP 段限制特定端口访问ingress: - ports: - protocol: TCP port: 80 # 仅允许 80 端口访问拒绝其他端口 from: - podSelector: matchLabels: access: true2. 关键注意事项默认行为无网络策略时Pod 可接收所有入站流量创建网络策略后仅允许策略中明确允许的流量。出站规则除了ingress入站还可通过egress定义 Pod 的出站流量规则限制 Pod 访问外部资源。标签匹配podSelector和namespaceSelector支持复杂标签匹配如matchExpressions满足多条件筛选需求。总结Kubernetes NetworkPolicy 提供了声明式的 Pod 通信管控能力核心价值在于实现 Pod 间的访问隔离提升集群安全性如限制数据库 Pod 仅允许应用 Pod 访问。按标签、命名空间、IP 段等维度灵活定义规则适配复杂业务场景。与网络插件解耦无需修改应用代码仅通过 YAML 配置即可生效。建议在生产环境中为核心服务如数据库、缓存、API 服务配置网络策略最小化访问权限降低安全风险。

相关文章:

Kubernetes 网络策略(NetworkPolicy)完全指南:声明式 Pod 通信管控

Kubernetes 网络策略(NetworkPolicy)完全指南:声明式 Pod 通信管控 1. Before you begin(前置条件) 1.1 核心要求Kubernetes 集群需支持 NetworkPolicy API(Kubernetes 1.7 版本默认支持)。部署…...

基于RAG与本地化部署的智能文献助手Aeiva:从原理到实践

1. 项目概述:当AI遇上科研,Aeiva如何重塑文献阅读与知识管理如果你是一名科研工作者、研究生,或者任何需要深度阅读大量文献的从业者,那么你肯定对“文献焦虑”深有体会。面对海量的PDF论文,从筛选、阅读、整理到提炼核…...

前端库作者必看:如何用@babel/plugin-transform-runtime优雅地发布你的npm包(避坑全局污染)

前端库作者必看:如何用babel/plugin-transform-runtime优雅地发布你的npm包(避坑全局污染) 当你准备将精心开发的前端库发布到npm时,是否考虑过你的polyfill策略可能会污染使用者的全局环境?作为库开发者,我…...

多智能体强化学习环境PettingZoo:从AEC/并行API到实战应用

1. 项目概述:从单智能体到多智能体的跃迁 如果你是从OpenAI Gym或者Gymnasium一路玩过来的强化学习爱好者,那么当你第一次尝试把研究兴趣扩展到多个智能体时,大概率会感到一阵头疼。单智能体环境里, env.reset() 、 env.step(…...

ESP32-CAM通过TCP传图,如何解决常见的网络中断和图片乱码问题?

ESP32-CAM TCP图像传输实战:破解网络中断与数据乱码的工程级方案 当你兴奋地完成ESP32-CAM的基础TCP图像传输demo后,现实往往给你当头一棒——WiFi信号波动导致频繁断连、接收到的图片出现诡异马赛克、服务端解析时内存溢出...这些才是真实开发中的常态。…...

终极Windows更新修复指南:5分钟解决系统更新故障的完整方案

终极Windows更新修复指南:5分钟解决系统更新故障的完整方案 【免费下载链接】Reset-Windows-Update-Tool Troubleshooting Tool with Windows Updates (Developed in Dev-C). 项目地址: https://gitcode.com/gh_mirrors/re/Reset-Windows-Update-Tool 你是否…...

微软公司产品图谱及生态

微软公司产品图谱及生态报告日期:2026年4月25日摘要微软(Microsoft Corporation)作为全球市值最高的科技企业之一,已完成了从传统软件授权公司向云服务与人工智能平台的史诗级转型。在首席执行官萨提亚纳德拉(Satya Na…...

Conda创建环境卡在‘Solving environment: failed’?别慌,试试这3种镜像源配置方法(附.condarc文件详解)

Conda环境创建卡在Solving environment: failed的深度解决方案与镜像源配置指南 当你在使用Conda创建Python环境时遇到Solving environment: failed错误,这通常意味着Conda无法解析和满足你指定的依赖关系。这个问题在配置不当或网络连接不稳定的情况下尤为常见。本…...

谷歌 Decoupled DiLoCo:革新分布式训练,高容错低带宽提升超大规模模型训练效率!

弹性 AI 预训练新前沿:谷歌的突破弹性 AI 预训练推进到了下一个前沿,这个突破来自谷歌。他们提出的 Decoupled DiLoCo 是一种革命性的分布式训练技术,能利用全球各地的异构硬件进行训练,即便硬件发生故障,系统也不会停…...

基于安卓的社区儿童托管预约平台毕业设计

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一款基于安卓平台的社区儿童托管预约系统以解决当前城市社区中儿童托管服务供需失衡与管理效率低下等问题。随着我国城市化进程加速及双职工…...

Python系列AI系列(仅供参考-推荐):AI Coding 进阶指南:Trae AI插件在Pycharm中的高效配置与实战技巧

AI Coding 进阶指南:Trae AI插件在Pycharm中的高效配置与实战技巧AI Coding 进阶指南:Trae AI插件在Pycharm中的高效配置与实战技巧1. 为什么开发者需要Trae AI插件2. 安装与基础配置详解2.1 插件安装的正确姿势2.2 账号配置与模型选择3. 日常开发中的高…...

暗黑破坏神2存档编辑革命:告别繁琐,拥抱网页端自由定制

暗黑破坏神2存档编辑革命:告别繁琐,拥抱网页端自由定制 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾经为了一个完美的暗黑2角色,反复刷图数小时却一无所获?你是否曾经因…...

抖音批量下载器:一键无水印下载,突破平台限制的终极解决方案

抖音批量下载器:一键无水印下载,突破平台限制的终极解决方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and brows…...

暗黑破坏神2存档编辑神器:网页版d2s-editor完全指南

暗黑破坏神2存档编辑神器:网页版d2s-editor完全指南 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为暗黑破坏神2存档修改而烦恼吗?d2s-editor是一款基于Vue.js开发的网页版暗黑2存档编辑器&#xf…...

算法打卡第12天|多数元素

题目链接:https://leetcode.cn/problems/majority-element/学习视频:【【力扣hot100】【LeetCode 169】多数元素-哔哩哔哩】 https://b23.tv/qVi0gBx【【力扣hot100】【LeetCode 169】多数元素-哔哩哔哩】 https://b23.tv/eIIjHvi 官方题解:https://leet…...

AI生图提示词及AI转模工具试探比较

GPT image 2 (每天8张免费额度) Tpose 正视图提示词: 帮我生成图片:帮我生成人物的Tpose,肩膀和前臂及双手向左右水平伸直,手掌朝下,手指伸直;脚垂直伸直,双脚叉开,脚掌间距为2个头…...

2026 年最新:Anthropic 注册政策变化及应对策略

2026 年 4 月,Anthropic 官方密集更新平台注册、审核、身份核验与地区风控全维度规则,结合全球 AI 监管法案收紧、模型滥用防控升级,对 Claude 网页端、开发者 API 控制台、账号准入、使用权限、封禁机制进行全方位调整。大量过往可用的注册方…...

三月七小助手:崩坏星穹铁道终极自动化游戏助手完整指南

三月七小助手:崩坏星穹铁道终极自动化游戏助手完整指南 【免费下载链接】March7thAssistant 崩坏:星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 还在为《崩坏:星穹铁道》中那些重复繁…...

DamaiHelper:如何用智能自动化告别演唱会抢票焦虑?

DamaiHelper:如何用智能自动化告别演唱会抢票焦虑? 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 当热门演唱会门票开售时,你是否经历过这样的场景&#xff1…...

【Flutter for OpenHarmony第三方库】Flutter for OpenHarmony 音频播放功能适配与实现指南

Flutter for OpenHarmony 音频播放功能适配与实现指南 欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net 摘要 在 OpenHarmony 生态持续扩张与 Flutter 跨平台开发深度融合的背景下,存量 Flutter 应用向鸿蒙终端迁移的技术需求日益…...

AiPy帮我工作后,我开始躺平摸鱼

作为一名某互联网公司摸爬滚打三年的运营分析师,我最近上班幸福感直线上升——没有涨工资,leader也没有请假,是因为我找到工作摸鱼的真神:AiPy。体验了不到一个月,就已经为我解决了太多工作痛点,让我从无休…...

别再让C++控制台输出乱糟糟了!用<iomanip>库的setw和setfill轻松搞定表格对齐

别再让C控制台输出乱糟糟了&#xff01;用库的setw和setfill轻松搞定表格对齐 每次在控制台输出表格数据时&#xff0c;那些参差不齐的列宽和混乱的对齐方式&#xff0c;是不是让你抓狂&#xff1f;作为一名C开发者&#xff0c;我深知这种痛苦。直到发现<iomanip>库中的s…...

Yoga Pro 14s装完Win11+Ubuntu 22.04,开机直接进Windows?手把手教你进Grub救援模式找回启动菜单

Yoga Pro 14s双系统启动项丢失&#xff1f;Grub救援模式实战指南 刚入手Yoga Pro 14s的兴奋还没褪去&#xff0c;就遭遇了双系统用户的经典噩梦——安装完Windows 11和Ubuntu 22.04后&#xff0c;开机直接进入Windows&#xff0c;Ubuntu仿佛从未存在过。这不是个例&#xff0c;…...

UnityFigmaBridge终极指南:从设计到开发的完整高效协作方案

UnityFigmaBridge终极指南&#xff1a;从设计到开发的完整高效协作方案 【免费下载链接】UnityFigmaBridge Easily bring your Figma Documents, Components, Assets and Prototypes to Unity 项目地址: https://gitcode.com/gh_mirrors/un/UnityFigmaBridge 你是否曾为…...

ComfyUI IPAdapter Plus完整指南:轻松实现图像引导AI生成

ComfyUI IPAdapter Plus完整指南&#xff1a;轻松实现图像引导AI生成 【免费下载链接】ComfyUI_IPAdapter_plus 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_IPAdapter_plus 想要让AI生成的图像完美融合你的参考图片风格吗&#xff1f;ComfyUI IPAdapter Plu…...

Windows/Mac双平台实测:用Git Bash和Idea内置终端搞定GitLab SSH Key配置全流程

Windows与macOS双平台实战&#xff1a;GitLab SSH Key配置与IntelliJ IDEA无缝集成指南 跨平台开发已成为现代团队的常态&#xff0c;但不同操作系统间的配置差异常常让开发者头疼。本文将手把手带你完成从SSH密钥生成到IntelliJ IDEA集成的全流程&#xff0c;特别针对Windows&…...

解耦管理化技术中的解耦计划解耦实施解耦验证

解耦管理化技术是现代系统工程中的关键方法&#xff0c;旨在通过解耦计划、解耦实施和解耦验证三个核心环节&#xff0c;实现复杂系统模块化与高效协同。这一技术广泛应用于软件开发、智能制造和供应链管理等领域&#xff0c;能够显著降低系统耦合度&#xff0c;提升灵活性与可…...

Ubuntu系统上部署OpenClaw完整指南

一、Ubuntu系统环境准备 (一)系统版本与硬件要求 在Ubuntu系统上部署OpenClaw前,需要确保系统版本和硬件配置满足基本要求。根据不同使用场景,OpenClaw对系统环境的要求有所差异,合理配置硬件资源可以确保系统稳定运行并获得良好体验。 首先,系统版本方面,OpenClaw要…...

auditd服务

1、简介 auditd是一个独立于rsyslog的专用日志系统,/var/log/audit/audit.log日志有auditd守护进程产生和管理。 auditd配置文件:/etc/audit/auditd.conf(主配置文件)、/etc/audit/rules.d/audit.rules(审计规则) auditd直接与内核的审计子系统(kauditd)交互,kauditd…...

Cadence allegro 全家桶 以及相关文件说明

0. cadence allegro 系列文件说明 版图编辑器会自动为你输入的主文件名添加对应后缀,不同后缀代表不同文件类型,说明如下: 表格 后缀 文件类型说明 .art(默认) 光绘文件。可在「设置 – 用户偏好设置」(命令:enved)中配置环境变量 ext_artwork,自定义光绘文件默认后…...