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. Linux 系统下查找文件命令

    Linux 系统下查找文件命令,融合多部Linux经典著作,去除多余部分,保留实用部分. 查命令绝对路径: which用于查找并显示给定命令的绝对路径,环境变量中PATH参数也可以被查出来. [roo ...

  2. LeetCode刷题日记 2020/8/28

    题目描述: 最长有效括号 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 ...

  3. Windows7 SP1 安装.NET Framework4失败

    系统版本是Windows7旗舰版,已经安装了SP1补丁,但还是无法安装.NET Framework4或者4.5,提示安装失败. 这时可以安装.NET Framework4.8的开发包,我这里安装开发包 ...

  4. 手撕红黑树 | 变色+旋转你真的明白了吗?【超用心超详细图文解释 | 一篇学会Red_Black_Tree】

    说在前面 我们也很久没有更新数据结构系列了,半年前博主重新深入学习了红黑树这个数据结构,一直想更新呈现给大家,最近也一直没有时间,今天红黑树它来了! 博主为了这篇博客,做了很多准备,试了很多画图软件, ...

  5. SpringBoot自动化配置

    SpringBoot自动化配置 一.SpringBoot自动化配置原理 1.SpringBoot引导类注解介绍 在SpringBoot的启动引导类上有一个@SpringBootApplication注 ...

  6. jwt 生成的token exp 的单位是秒

    public class Test { public static void main(String[] args) throws UnsupportedEncodingException { Dat ...

  7. ASP.NET Core分布式项目实战(Consent 代码重构)--学习笔记

    任务23:Consent 代码重构 新建一个 Sercices 文件夹,在文件夹下新建一个 ConsentService,专门用于处理 Consent 的逻辑,我们会把 controller 中不是 ...

  8. [Ngbatis源码学习][SpringBoot] ApplicationContextInitializer接口类的使用和原理解读

    ApplicationContextInitializer接口类的使用和原理解读 在看Ngbatis源码的过程中,看到了自定义的ApplicationContextInitializer实现类,对Ap ...

  9. ABC 306

    前三题过水. D \(dp[i][j]\) 表示吃完前 \(i\) 个菜,胃的状况为 \(j\)(\(0\) 是健康,\(1\) 是不好)所获得的最大美味值. E 暴力的平衡树.用 multiset ...

  10. SP16113 SUBTLEBA - Trucks Transportation 题解

    题目传送门 前言 本题样例有问题,如果想要样例可以去 vjudge 上. 本题提交后可能会出现 UKE ,建议前往 link 提交,而且本篇题解中所提供的代码也为 link 代码. 前置知识 Krus ...