K8s Network Policy 是一种资源,它用于在 Pod 之间以及从其他网络实体到 Pod 的通信中进行网络级别的访问控制。它允许您定义一组规则,这些规则可以指定允许或拒绝网络流量。

具体来说,Kubernetes Network Policy 定义了以下几种访问控制:

  1. Pod 之间的访问控制:可以定义规则,允许或拒绝特定的 Pod 之间的通信。这包括在同一命名空间内或跨命名空间的 Pod 之间的通信。
  2. 从其他网络实体到 Pod 的访问控制:可以定义规则,允许或拒绝从特定的 IP 地址或 IP 范围到 Pod 的访问。这允许您控制外部网络实体(例如,其他网络中的服务器或设备)与 Kubernetes 集群中的 Pod 之间的通信。

使用 Kubernetes Network Policy,您可以实现以下目标:

  1. 提高安全性:通过限制不必要的网络流量,您可以减少潜在的攻击面,从而提高 Kubernetes 集群的安全性。
  2. 实现微隔离:通过在 Pod 之间实施访问控制,您可以创建微隔离环境,确保 Pod 只与其需要通信的其他 Pod 进行交互。
  3. 满足合规性要求:一些组织可能有关于网络安全和数据隔离的合规性要求。使用 Kubernetes Network Policy,您可以更容易地满足这些要求。

要使用 Kubernetes Network Policy,您需要确保您的 Kubernetes 集群已启用对该功能的支持。此外,您还需要选择合适的网络插件,因为不同的网络插件可能具有不同的支持和配置选项。在配置网络策略时,您还需要考虑集群的规模和复杂性,以及您的安全和隔离需求。

以下是一个Kubernetes Network Policy的YAML示例文件,它定义了简单的网络访问规则:

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: UDP
port: 53

在这个示例中:

  • apiVersion 指定了Kubernetes API的版本,用于创建Network Policy资源。
  • kind 定义了资源的类型,这里是NetworkPolicy。
  • metadata 包含了Network Policy的名称和所在的命名空间。
  • spec定义了Network Policy的规范:
    • podSelector 指定了应用这个Network Policy的Pod,基于标签选择器role: db来选择Pod。
    • policyTypes 列出了该策略适用的流量类型,可以是Ingress(进入Pod的流量)、Egress(从Pod发出的流量),或者两者都包括。
    • ingress 定义了进入Pod的流量规则,允许来自特定CIDR块、带有特定标签的命名空间中的Pod、或带有特定标签的其他Pod的流量。也可以指定允许的协议和端口号。
    • egress 定义了从Pod发出的流量规则,类似地可以指定目标CIDR块、端口和协议。

k8s安全之Network Policy的更多相关文章

  1. Kubernetes之网络策略(Network Policy)

    系列目录 概述 Kubernetes要求集群中所有pod,无论是节点内还是跨节点,都可以直接通信,或者说所有pod工作在同一跨节点网络,此网络一般是二层虚拟网络,称为pod网络.在安装引导kubern ...

  2. 实践 Network Policy - 每天5分钟玩转 Docker 容器技术(172)

    为了演示 Network Policy,我们先部署一个 httpd 应用,其配置文件 httpd.yaml 为: httpd 有三个副本,通过 NodePort 类型的 Service 对外提供服务. ...

  3. Network Policy - 每天5分钟玩转 Docker 容器技术(171)

    Network Policy 是 Kubernetes 的一种资源.Network Policy 通过 Label 选择 Pod,并指定其他 Pod 或外界如何与这些 Pod 通信. 默认情况下,所有 ...

  4. Network Policy【转】

    Network Policy 是 Kubernetes 的一种资源.Network Policy 通过 Label 选择 Pod,并指定其他 Pod 或外界如何与这些 Pod 通信. 默认情况下,所有 ...

  5. 实践 Network Policy 【转】

    为了演示 Network Policy,我们先部署一个 httpd 应用,其配置文件 httpd.yaml 为: httpd 有三个副本,通过 NodePort 类型的 Service 对外提供服务. ...

  6. 从零开始入门 K8s | Kubernetes 网络概念及策略控制

    作者 | 阿里巴巴高级技术专家  叶磊 一.Kubernetes 基本网络模型 本文来介绍一下 Kubernetes 对网络模型的一些想法.大家知道 Kubernetes 对于网络具体实现方案,没有什 ...

  7. 第13 章 : Kubernetes 网络概念及策略控制

    Kubernetes 网络概念及策略控制 本文将主要分享以下 5 方面的内容: Kubernetes 基本网络模型: Netns 探秘: 主流网络方案简介: Network Policy 的用处: 思 ...

  8. 【Kubernetes】K8S 网络隔离 方案

    参考资料: K8S-网络隔离参考 OpenContrail is an open source network virtualization platform for the cloud. – Kub ...

  9. 运维面试题之k8s

    前言: 到了如今年k8s已经是事实上的容器集群标准了,是时候展现我真正的祖传k8s实力了 吐槽: 我干嘛要知道这些,能用不就行了k8s真香 Kubernetes有哪些特性? Kubernetes是自动 ...

  10. kubernetes实战(二十六):kubeadm 安装 高可用 k8s v1.16.x dashboard 2.x

    1.基本配置 基本配置.内核升级.基本服务安装参考https://www.cnblogs.com/dukuan/p/10278637.html,或者参考<再也不踩坑的Kubernetes实战指南 ...

随机推荐

  1. 从嘉手札<09-06-2023>

    时常会想 这个世界什么是长久的 我们走在时代的映照下,行色匆匆. 因为别人的悲欢而悲欢,因为自己的局限而挣扎. 晨而得志,暮而踌躇. 青楼梦好,难赋深情. 这个世界有很多的选择. 金钱,酒色,健康,相 ...

  2. 基于volcano实现节点真实负载感知调度

    本文分享自华为云社区<基于volcano实现节点真实负载感知调度>,作者: 可以交个朋友. 背景 默认调度器调度器视某个节点的空闲可调度资源=节点可分配资源 - SUM(节点上已调度Pod ...

  3. DataSet类型转换实体

    查询DataSet类型无法对每条数据进行循环转换,利用泛型对象使用反射机制将对象相关属性进行自动赋值. 基础调用 DataSet ds = DbHelper.Query(SQL); if (ds.Ta ...

  4. grafana+prometheus+loki的使用

    grafana官网:https://grafana.com/zh-cn/grafana/ grafana下载:https://grafana.com/grafana/download?pg=graf& ...

  5. C++编译器的RVO和NRVO

    1.说明 我一直记得返回对象的函数在调用时会有拷贝构造动作,但是最近实际测试却和记忆有些偏差,经查询是编译的问题 RVO: return value optimization NRVO: named ...

  6. 2、数据库:SQL Server部署 - 系统部署系列文章

    对于微软的SQL Server的安装,以前已经有写过了,到了2022版本,安装没多大的改变,很多只需要少配置,然后直接下一步即可.现在是2023年了,SQL Server已经出到了2022版本,这篇博 ...

  7. 记录一则ADG备库报错ORA-29771的案例

    有客户找到我这边咨询,说他们的一套核心ADG库在业务高峰期报错,因为业务做了读写分离,其备库也实际承担读业务,所以备库故障也会对业务产生影响. 这里也要提醒大家,做读写分离,如果读库出现故障的情况,要 ...

  8. 20.3 DLL入口函数--《Windows核心编程》

    如果在执行一些与进程或者线程有关的初始化或者销毁工作的时候,需要 DllMain.如果只需要创建一个包含资源的DLL,不需要这个函数. B00L WINAPI DllMain(HINSTANCE hi ...

  9. Mysql 创建外键、索引的问题

    总结: 创建外键的列,要求必须创建索引,通常我们只需要创建外键就可,索引他会自动创建.若是索引那里已经存在了组合索引,那么组合索引前面的第一列已经有了索引,所以创建外键的时候不会自动创建,但是后面的列 ...

  10. 用superxmlparser.pas的XMLParseString----XML转Json注意

    了解XML转成Json时候用的时候多了个#号: ---------------------------------------------------------------------------- ...