十九. Kubernetes NetworkPolicy 网络隔离策略

2023-11-04

一. NetworkPolicy 基础解释

  1. 官方文档
  2. NetworkPolicy 网络策略(网络隔离策略): k8s中资源是通过命名空间隔离的,但是为了保证k8s的网络互通性,是没有做隔离的,防止调用错误,例如测试环境请求到了生产服务等问题,可以通过NetworkPolicy定义网络策略
  3. 通过NetworkPolicy可以精确到pod设置网络隔离,基于pod的标签,NameSpace, CIDR进行隔离(默认情况下Pod 都是非隔离的)
  4. 实际可以理解成编写NetworkPolicy的yaml,内部使用选择器选中指定pod,对选中的pod设置网络策略,限制被选中的pod允许哪些资源访问,限制被选中的pod可以访问哪些资源
  5. 一个NetworkPolicy的yaml示例与解释
  1. “kind: NetworkPolicy”: 当前资源时NetworkPolicy
  2. 通过podSelector设置选择器,设置选中哪些pod,针对选中的pod编写网络策略
  3. “policyTypes”: 有两个值"Ingress" 入站策略与"Egress"出站策略
  4. “ingress”: 在该字段下编写入站策略,也就是被选中的pod允许哪些资源访问
  5. “egress”: 在该字段下编写出站策略,也就是被选中的pod可以访问哪些资源
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: networkpol-01
  namespace: default
spec:
  podSelector:  #pod选择器
    matchLabels:
       app: canary-nginx  #使用标签选中pod,限制被选中的pod的访问
  policyTypes: 
    - "Ingress"
    - "Egress"  
  ingress: #入站白名单(当前被选中的pod允许哪些资源访问)
  - from: 
      - podSelector: #通过pod选择器同命名空间下的运行访问pod
          matchLabels:
            name: busybox   ## busybox 可以得到 canary-nginx 的内容
      - namespaceSelector: #通过命名空间选择器选中允许访问的资源有哪些
          matchLabels:
            kubernetes.io/metadata.name: hello ## 这个hello名称空间的可以访问 canary-nginx 的内容
      - ipBlock: #CIDR方式指定允许访问的资源有哪些
          cidr: "192.168.0.0/16" ## 默认 从 192.168.0.0 - 192.168.255.255 都能访问这个Pod
          except: ## 排除指定范围
            - "192.168.1.0/24"  ## 192.168.1.0-192.168.1.255  不能访问

      ### 两个 - ,代表并集(或者)
      ### 一个 - ,代表交集(且)
    ports:
      - port: 80 #监听端口
  egress: ## 出站白名单,也就是当前通过"canary-nginx"选中的pod能给访问哪些资源
  - to:  
      - namespaceSelector:
          matchLabels:
            kubernetes.io/metadata.name: hello  ## app: canary-nginx 能访问hello名称空间的所有
    ports:
      - port: 80 #监听端口
  1. to和from选择器的行为:NetworkPolicy 的 spec.ingress.from 和 spec.egress.to 字段中,都可以指定 4 种类型的标签选
    择器
  1. podSelector 选择与 NetworkPolicy 同名称空间中的 Pod 作为入方向访问控制规则的源或者出方向访问控制规则的目标
  2. namespaceSelector 选择某个名称空间下所有的Pod作为入方向访问控制规则的源或者出方向访问控制规则的目标
  3. namespaceSelector 和 podSelector 在一个 to / from 条目中同时包含 namespaceSelector 和podSelector 将选中指定名称空间中的指定 Pod。此时请特别留意 YAML 的写法
  4. ipBlock 可选择 IP CIDR 范围作为入方向访问控制规则的源或者出方向访问控制规则的目标。这里应该指定的是集群外部的 IP,因为集群内部 Pod 的 IP 地址是临时分配的,且不可预测
  1. 集群的入方向和出方向网络机制通常需要重写网络报文的 source 或者 destination IP。kubernetes 并未定义应该在处理 NetworkPolicy 之前还是之后再修改 source / destination IP,因此,在不同的云供应商、使用不同的网络插件时,最终的行为都可能不一样。这意味着
  1. 对于入方向的网络流量,某些情况下,你可以基于实际的源 IP 地址过滤流入的报文;在另外一些情况下,NetworkPolicy 所处理的 “source IP” 可能是 LoadBalancer 的 IP 地址,或者其他地址
  2. 对于出方向的网络流量,基于 ipBlock 的策略可能有效,也可能无效
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

十九. Kubernetes NetworkPolicy 网络隔离策略 的相关文章

随机推荐

  • Nginx系列(十九):URI转义机制(部分转载)

    一 URI和特殊字符 源文档 https www cnblogs com upyun p 8267334 html 1 URI URI 全称是 Uniform Resource Identifiers 即统一资源标识符 用于在互联网上标识一
  • 【51单片机】LED模块和独立按键的使用

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 原理介绍
  • MIMO 从入门到精通 -科普篇 1 - 5G Massive MIMO

    参考 Our Technology Planet lt lt 5G Massive MIMO Made Simple Learn All About Massive MIMO Beam Forming In 30 minutes gt gt
  • ESP32 Wi-Fi & 蓝牙 Tx Power 调整方法

    此篇博客用来整理 ESP32 Wi Fi BLE 的 Tx Power 调整方法 此博客分为两部分 Wi Fi Tx Power 调整 BLE Tx Power 调整 BR EDR Tx Power 调整 注 当前使用 的 IDF comm
  • Kubeadm 安装 Kubernetes:kubelet 状态失败的解决方案

    Kubeadm 安装 Kubernetes kubelet 状态失败的解决方案 在使用 kubeadm 安装 Kubernetes 集群时 遇到 kubelet 状态失败的问题是比较常见的 这个问题主要出现在 kubelet 无法正常启动或
  • 如何查看微信image/*.dat文件

    背景 起因我是想看看能不能获取的到撤回的图片 于是在 WeChat Files FileStorage Image这个文件下发现了聊天记录储存的文件 却发现文件已被加密 也就有了这篇文章 关于撤回的图片这个问题 结论是获取不到 聊天记录里加
  • Apk脱壳圣战之—如何脱掉“梆梆加固”的保护壳

    一 前言 现如今Android用户的安全意识不是很强 又有一些恶意开发者利用应用的名字吸引眼球 包装一个恶意锁机收费的应用 在用户被骗的安装应用之后 立马手机锁机 需要付费方可解锁 这样的恶意软件是非常让人痛恨的 所以本文就用一个案例来分析
  • HIT-ICS2020大作业

    doc排版转换成md太恶心了 图片三四十张 推荐下载我上传的资源查看 https download csdn net download ggtged 12469782 计算机系统大作业 题 目 程序人生 Hello s P2P 专 业 人工
  • chatpdf+mindshow由论文pdf直接生成报告PPT,拯救研究牲

    chatpdf mindshow由论文pdf直接生成报告PPT 拯救研究牲 感谢AIGC技术 现在可以从论文的pdf直接生成展示的PPT STEP1 STEP2 最终效果预览 步骤 STEP1 论文PDF到PPT的markdown格式 ch
  • 配置Log4j

    来自 http www blogjava net zJun archive 2006 06 28 55511 html Log4J的配置文件 Configuration File 就是用来设置记录器的级别 存放器和布局的 它可接key va
  • DB2 SQL error: SQLCODE: -302, SQLSTATE: 22001, SQLERRMC: null

    DB2 SQL error SQLCODE 302 SQLSTATE 22001 SQLERRMC null 当向数据库中插入记录时遇到以下异常 后经查处是 我将数据库自动生成逐渐的UUID改成了在java代码中手动生成UUID造成的 其实
  • CUDA by example Chapter6 常量内存与事件

    常量内存与事件 常量内存 光线跟踪 在GPU上实现光线追踪 通过常量内存来实现光线追踪 使用事件来测量性能 常量内存 使用常量内存的原因 GPU中含有数量庞大的计算单元 因此性能瓶颈通常并不在于芯片的数学计算吞吐量 而是在于芯片的内存带宽
  • 一款很漂亮的一天只弹窗一次的公告

    一款很漂亮的可设置时间的弹窗公告 可自定义HTML代码的公告 CSS代码 核客互动公告 blog hackeus cn btn large load all popup btn popup btn o page number padding
  • 学习java中的if语句

    java中if语句 if语句 用于判断 可以单分支 也可以多分支 单分支 if 判断语句 满足 则执行的代码块 else 不满足判断语句时 执行的代码块 多分支 if 判断语句1 满足判断语句1 执行的代码块 else if 判断语句2 不
  • pycharm远程调试,python remote debug,不进断点

    不 要 直 接 在 线 上 环 境 远 程 debug 不 要 直 接 在 线 上 环 境 远 程 debug 不 要 直 接 在 线 上 环 境 远 程 debug 目录 1 操作步骤 如下图所示 1 Tools gt Deploymen
  • 总结 Underlay 和 Overlay 网络,在k8s集群实现underlay网络,网络组件flannel vxlan/ calico IPIP模式的网络通信流程,基于二进制实现高可用的K8S集群

    1 总结Underlay和Overlay网络的的区别及优缺点 Overlay网络 Overlay 叫叠加网络也叫覆盖网络 指的是在物理网络的 基础之上叠加实现新的虚拟网络 即可使网络的中的容器可 以相互通信 优点是对物理网络的兼容性比较好
  • 用python实现简单的飞机大战小游戏

    1 下载一个包 PySide2 5 15 2 1 5 15 2 cp35 cp36 cp37 cp38 cp39 cp310 none win amd64 如果下载错误 就先下载shiboken2 5 15 2 1 5 15 2 cp35
  • python——类型转换和冗余数据删除

    1 类型转换 import pandas as pd import datetime 一般我们拿到日期型数据时 基本都是字符串表示的 该如何将其转换为日期型和日期时间型 法1 dt 2019 06 13 16 16 39 d 2017 04
  • Spring:IoC和DI完成打印机打印详细说明过程及代码

    Spring IoC和DI完成打印机 课后作业 使用Spring的IoC DI 装配一台打印机 纸张接口 实现 有 A4 A5 墨盒接口 实现 有 黑白 彩色 注解方式和非注解方式都要 说明 1 首先是注解方式 下面那些代码就是用注解方式做
  • 十九. Kubernetes NetworkPolicy 网络隔离策略

    目录 一 NetworkPolicy 基础解释 一 NetworkPolicy 基础解释 官方文档 NetworkPolicy 网络策略 网络隔离策略 k8s中资源是通过命名空间隔离的 但是为了保证k8s的网络互通性 是没有做隔离的 防止调