首页 > 其他分享 >在K8S中,网络策略有哪些?

在K8S中,网络策略有哪些?

时间:2024-10-13 21:22:08浏览次数:7  
标签:策略 哪些 网络 流量 Pod K8S 选择器 NetworkPolicy

在Kubernetes(K8S)中,网络策略(NetworkPolicy)是一种重要的资源对象,用于定义Pod之间的通信规则,实现微服务应用程序中的细粒度网络隔离和安全控制。以下是Kubernetes网络策略的一些详细内容:

  1. 网络策略的核心概念

    • 选择器(Selectors):用于标识特定Pod集合的标签选择器。
    • 规则(Rules):定义允许或拒绝哪些流量的规则,包括源Pod、目标Pod、协议和端口等。
    • 默认策略:在没有明确定义网络策略的情况下,采用默认策略,通常是允许所有流量。
  2. 网络策略的组成部分

    • 策略类型:Kubernetes网络策略有两种类型:Ingress(入站)和Egress(出站)。Ingress策略允许你控制流入Pod的流量,而Egress策略允许你控制从Pod流出的流量。它们在NetworkPolicy资源的policyTypes字段中指定。
    • 入口规则(Ingress Rules):这些定义了Pod的传入流量策略,指定在NetworkPolicy资源的ingress字段中。你可以定义流量的来源,可以是Pod、命名空间或IP块,以及允许访问流量的目标端口或端口。
    • 出口规则(Egress Rules):这些定义了Pod的传出流量策略。在这里,你将指定流量的目标,可以是Pod、命名空间或IP块,以及允许访问流量的目标端口或端口。
    • Pod选择器(Pod Selectors):这些选择要应用策略的Pod。为选择器指定标签,与选择器匹配的Pod将受到策略中指定的规则的约束。
    • 命名空间选择器(Namespace Selectors):类似于Pod选择器,这些允许你选择要应用策略的命名空间。
    • IP地址块选择器(IP Block Selectors):IP地址块选择器指定要允许或拒绝流量的IP地址范围。你可以使用CIDR表示法来指定IP地址范围。
  3. 网络策略的实施

    • 要使用网络策略,集群必须使用支持NetworkPolicy的网络插件。创建一个NetworkPolicy资源对象而没有控制器来使它生效的话,是没有任何作用的。
    • 网络策略通过标签选择器来设定哪些流量可以进入或离开与该算符匹配的Pod。当创建基于IP的NetworkPolicy时,基于IP组块(CIDR范围)来定义策略。
  4. 网络策略的应用场景

    • 应用程序间的访问控制,例如项目A不能访问项目B的Pod。
    • 开发环境命名空间不能访问测试环境命名空间的Pod。
    • 当Pod暴露到外部时,需要做Pod白名单。
    • 多租户网络环境隔离。
  5. 网络策略的示例

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: test-network-policy
      namespace: default
    spec:
      podSelector:
        matchLabels:
          role: db
      policyTypes:
        - Ingress
        - Egress
      ingress:
        - from:
          - ipBlock:
              cidr: 172.17.0.0/16
              except:
                - 172.17.1.0/24
          - namespaceSelector:
              matchLabels:
                project: myproject
          - podSelector:
              matchLabels:
                role: frontend
          ports:
            - protocol: TCP
              port: 6379
      egress:
        - to:
          - ipBlock:
              cidr: 10.0.0.0/24
          ports:
            - protocol: TCP
              port: 5978
    

    这个策略确保只有带有标签role: frontend的Pod可以访问TCP端口6379上的后端Pod,并且后端Pod只能访问CIDR块10.0.0.0/24中的服务。

综上所述,通过合理配置网络策略,可以增强集群的安全性,确保不同命名空间和应用之间的通信符合预期的安全要求。

标签:策略,哪些,网络,流量,Pod,K8S,选择器,NetworkPolicy
From: https://www.cnblogs.com/huangjiabobk/p/18463019

相关文章

  • 在K8S中,flannel的作用?
    Flannel是Kubernetes生态系统中最常用的网络插件之一,它主要用于实现覆盖网络(OverlayNetwork),使得Pod之间的通信可以跨越多个物理主机。Flannel的主要作用在于简化跨主机的容器网络连接,确保容器(Pod)之间的网络通信高效且可靠。以下是Flannel的具体作用及其工作机制的详细说明:1.Fla......
  • 什么是分布式事务?使用Seata有哪些解决方案?Seata的AT模式的执行流程
    什么是分布式事务?简单来说:在分布式系统中出现的事务问题,称为分布式事务。为什么会出现分布式事务:一个分布式事务流程图在这个业务中有3个数据库连接,就没有办法做到全局的事务控制。这就是分布式事务问题分布式事务产生的情况有两种:​ 1.业务跨多个服务实现​ 2.业务跨多......
  • 深度学习神经网络笔记--卷积神经网络
    为什么要用卷积捕捉特征,如文末的图)不受位置影响(左右,前后,上下)可以参考下图:卷积操作可移动的小窗口与图像数据逐元素相乘后相加小窗口是滤波器,卷积核,(权重矩阵)需要注意的问题:stride:步长卷积核的个数:决定输出的depth,卷积核个数填充值zerp-padding:外圈补0......
  • 网络拓扑结构
    网络拓扑结构是网络设计的基础,它决定了网络中设备之间的连接方式和数据传输路径。以下是一些常见的网络拓扑结构及其优缺点:星型拓扑:优点:结构简单,易于管理和维护;故障隔离容易;中心节点可以方便地监控和管理整个网络。缺点:中心节点是单点故障,如果中心节点出现故障,整个网络可能会瘫痪......
  • fastapi 开始前需要了解哪些了解哪些?
    路由在FastAPI中,配置路由和端点是通过装饰器实现的,这使得代码结构清晰且易于管理。下面是一个简单的示例来说明如何配置路由和定义端点。快速接入通过如下步骤实现基础的api创建:导入FastAPI:首先,确保你已经安装了FastAPI库,并在你的代码文件顶部导入它。创建FastAPI......
  • zookeeper 都有哪些使用场景?思考13
    大致来说,zookeeper的使用场景如下,我就举几个简单的,大家能说几个就好了:分布式协调分布式锁元数据/配置信息管理HA高可用性分布式协调这个其实是zookeeper很经典的一个用法,简单来说,就好比,你A系统发送个请求到mq,然后B系统消息消费之后处理了。那A系统如何知道B系统......
  • zookeeper 都有哪些使用场景?思考5
    大致来说,zookeeper的使用场景如下,我就举几个简单的,大家能说几个就好了:分布式协调分布式锁元数据/配置信息管理HA高可用性分布式协调这个其实是zookeeper很经典的一个用法,简单来说,就好比,你A系统发送个请求到mq,然后B系统消息消费之后处理了。那A系统如何知道B系统......
  • MySQL中的数据类型有哪些?如何选择合适的数据类型来优化性能?
    MySQL中的数据类型丰富多样,它们主要分为以下几大类,并且每一类中又包含多种具体的数据类型:整数类型:包括TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT等,这些类型用于存储整数值,其范围和存储大小各不相同。例如,TINYINT占用1个字节,而BIGINT则占用8个字节。浮点数和定点数类型:FLO......
  • 【2024年诺贝尔物理学奖颁发给了机器学习与神经网络领域的研究者,其影响力标志的未来是
    (目录)欢迎关注微信公众号:数据科学与艺术*近日,2024年诺贝尔物理学奖颁发给了机器学习与神经网络领域的研究者,这是历史上首次出现这样的情况。这项奖项原本只授予对自然现象和物质的物理学研究作出重大贡献的科学家,如今却将全球范围内对机器学习和神经网络的研究和开发作为了一种......
  • Centos7---k8s集群 20241013
    目录一、硬件准备(虚拟主机)二、环境准备1、所有机器关闭防火墙2、所有机器关闭selinux3、所有机器关闭swap4、所有机器上添加主机名与ip的对应关系5、在所有主机上将桥接的ipv4流量传递到iptables的链三、为所有节点安装docker四、集群部署1、为所有节点修改仓库,安......