calico网络策略

2023-10-30

关于优先级order:

  1. 为了与 Kubernetes 兼容,Calico 网络策略执行遵循 Kubernetes pod 的标准约定:

如果没有网络策略适用于 Pod,则允许所有进出该 Pod 的流量。

如果一个或多个网络策略应用于类型为 ingress 的 pod,则仅允许这些策略明确允许的入口流量。

如果一个或多个网络策略应用于类型为 egress 的 pod,则仅允许这些策略明确允许的出口流量。

对于其他端点类型(VM、主机接口),默认行为是拒绝流量。即使没有网络策略应用于端点,也只允许网络策略明确允许的流量。

  1. order: 策略叠加时的应用次序,数字越小越先应用,冲突时,后者会覆盖前者
  2. Global vs非全局并不是决定策略应用的顺序的一个因素。排序是由Calico NetworkPolicy和GlobalNetworkPolicy资源的“order”字段决定的,它的“order”政策首先应用于此。
  3. 如果没有指定“order”默认值到∞,那么将会应用未指定的“order”策略。
  4. Calico还实现了Kubernetes NetworkPolicy资源,它没有一个明确的“order”字段。为了命令那些对Calico资源的人,我们将Kubernetes的NetworkPolicy资源对待,就像他们有一个隐式的“顺序”1000。
  5. 对于具有相同order的策略来说,代码中有一个搭配器,但你不应该知道它是什么或依赖它,因为当排序很重要的时候,最好使用一个明确的“order”值。

Enable default deny for Kubernetes pods

资源定义:

GlobalNetworkPolicy

GlobalNetworkSet

NetworkPolicy

NetworkSet

常用命令:

https://docs.projectcalico.org/reference/calicoctl/

calicoctl apply -f policy.yaml

calicoctl apply -f policy.yaml

calicoctl get/delete np/gnp

参考资料:

About Calico

GitHub - projectcalico/libcalico-go: Golang Calico library functions: https://www.projectcalico.org

一文学会Calico高级网络策略 - 简书

最佳实践:calico建议

零信任网络模型

https://docs.projectcalico.org/security/adopt-zero-trust

隐式默认拒绝策略

我们建议为您的 Kubernetes pod 创建隐式默认拒绝策略,无论您使用 Calico 还是 Kubernetes 网络策略。这可确保默认情况下拒绝不需要的流量。请注意,隐式默认拒绝策略总是最后出现;如果任何其他策略允许流量,则拒绝不会生效。仅在评估所有其他策略后才执行拒绝。

Enable default deny for Kubernetes pods

Ingress 解决方案的类型

从广义上讲,有两种类型的入口解决方案:

  1. 集群内入口 - 入口负载平衡由集群本身内的 pod 执行。
  2. 外部入口 - 入口负载平衡由设备或云提供商功能在集群外部实现。

全局网络策略:

apiVersion: projectcalico.org/v3

kind: GlobalNetworkPolicy

metadata:

  name: global-default

spec:

  types:

  - Ingress

  - Egress

  ingress:

  - action: Allow

    source: {}

  egress:

  - action: Allow

destination: {}

网络策略

kind: NetworkPolicy
apiVersion: projectcalico.org/v3
metadata:
  name: hfftest
  namespace: hff
spec:
  order: 1000
  ingress:
    - action: Allow
      protocol: TCP
      source:
        namespaceSelector: name == 'hffns'
      destination:
        ports:
          - 80
    - action: Deny
      source:
        namespaceSelector: name != 'hfftest' && (! has(privileged-namespace))
      destination: {}
  egress:
    - action: Allow
      source: {}
      destination:
        namespaceSelector: name == 'hff1'
    - action: Deny
      source: {}
      destination:
        namespaceSelector: name != 'hfftest' && (! has(privileged-namespace))
  types:
    - Ingress
    - Egress

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

calico网络策略 的相关文章

随机推荐

  • 以太网 ARP

    在以太网中 一个主机和另一个主机进行通信 必须要知道目的主机的 MAC 地址 物理地址 而目的 MAC 地址的获取由 ARP 协议完成 ARP 概述 ARP Address Resolution Protocol 即地址解析协议 是根据 I
  • golang字符串首字母转化为大写

    字符串首字母转化为大写 字符串首字母转化为大写 ios bbbbbbbb gt iosBbbbbbbbb func strFirstToUpper str string string temp strings Split str var u
  • mysql模糊搜索 like_Mysql必知必会(3):模糊查询(LIKE)

    本文介绍什么是通配符 如何利用通配符进行数据库数据过滤查询 本文使用的数据表在本文最后附录 简介 之前几篇文章的所有例子查询的条件都是确定的值 比如大于20 或者用户ID为1 但是 有些时候我们需要查询一些不太确定的值 比如用户在输入框输入
  • 算法之回溯算法

    目录 前言 如何理解回溯算法 两种回溯算法的经典应用 1 0 1背包 2 正则表达式 总结 参考资料 前言 很多经典的数学问题都可以用回溯算法解决 比如数独 八皇后 0 1 背包 图的着色 旅行商问题 全排列等等 用来指导像深度优先收索这种
  • 40-400-044-运维-优化-MySQL order by 优化

    文章目录 1 概述 2 MySQL中的两种排序方式 3 ORDER BY优化的核心原则 4 ORDER BY优化实战 ORDER BY优化 WHERE ORDER BY 优化 Filesort优化 1 概述 本篇文章我们将了解ORDER B
  • 【BUG

    问题 运行Inpaint Anything时 pycharm中的conda环境下的tensorflow问题 2023 04 19 10 53 30 485189 I tensorflow core platform cpu feature
  • [非卷积5D] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

    不使用3D建模 使用静态图片进行训练 用 非卷积 深度网络表示场景的5D连续体表示 再通过ray marching进行渲染 paper NeRF Representing Scenes as Neural Radiance Fields f
  • idea数据库表生成实体类

    先说一下实现的功能 根据数据库 生成实体类 生成的实体类的格式可参看下图 生成的实体类中加入的注解有 Table注解 无getset方法 加入了lombok的 DATA Slf4j注解 支持 ID注解 当字段名为id时 如果数据库表中字段通
  • java比较string是否相同

    比较引用 equals 比较值 1 java中字符串的比较 我们经常习惯性的写上if str1 str2 这种写法在java中可能会带来问题 example1 String a abc String b abc 那么a b将返回true 因
  • 弹性盒子(flex布局)

    传统布局 兼容性好 布局繁琐 局限性 不能再移动端很好的布局 flex弹性布局 操作方便 布局极为简单 移动端应用广泛 PC端浏览器支持情况较差 布局原理 flex意为 弹性布局 用来为盒状模型提供最大的灵活性 任何一个容器都可以指定为fl
  • .net core 整洁架构入门

    Clean Architecture with NET Core Getting Started 使用 NET Core整洁架构 Clean Architecture 入门 Over the past two years I ve trav
  • 融合黄金正弦,十种混沌映射,搞定!把把最优值,本文思路可用于所有智能算法的改进...

    上一期的2023年最新优化算法之减法优化器算法 SABO 效果已经相当不错了 而且由于其十分简单的公式原理 更适用于刚接触智能优化算法的小伙伴 今天这篇文章为大家带来 融合黄金正弦的减法优化器 GSABO 本文会讲解一下改进思路 为各位小伙
  • 流程型和离散型制造行业mes系统的区别

    流程型和离散型制造行业mes系统的区别 在制造信息化的时代背景之下 MES系统 被越来越多的企业重视 虽然MES系统在制造行业中有着巨大的价值 但是不同的企业对MES系统的需求也存在很大的差异性 比较突出的就是流程型和离散型这两个方面 那么
  • 修改linux命令行终端的显示区行数列数

    stty rows 50 columns 200
  • Bugkuctf web 前女友

    老规矩 有新东西就记上一记 题目链接 这个有点儿意思 打开源码 好了 代码意思比较简单 重点看圈住的代码就好 满足v1v2的值不等但是md5相等 且v3 flag才行 好了 新知识来了 首先是md5 函数漏洞 第一种 GET a GET b
  • Web自动化Selenium-获取页面元素的相关信息

    获取页面元素的信息主要有两个目的 一是执行完步骤后进行断言 二是获取前一步骤的响应结果 将其作为后续步骤的输入或判断条件 获取元素的基本信息 目的输出元素的大小 文本 标签名 关键字 tag name 输出元素的标签名 size 输出元素的
  • TCP/IP协议,HTTP协议--面试必备

    经常面试被问到什么是http协议 什么是TCP协议 而且每次都弄不清楚 是时候记录一下了 一 什么是http协议 如果读者对计算机网络的体系结构比较了解的话应该清楚 IP协议位于网络层 TCP UDP协议位于传输层 HTTP位于应用层 如下
  • 本地存储基础

    本地存储特性 1 数据存储在用户浏览器中 2 设置 读取方便 甚至页面刷新不丢失数据 3 容量较大 sessionStorage约5M localStorage约20M 4 只能存储字符串 可以将对象JSON stringify 编码后存储
  • 如何使用Navicat修改mysql用户密码?

    https jingyan baidu com article 455a995054d490a167277858 html 下面介绍如何使用Navicat修改mysql用户密码的具体操作方法 工具 原料 Navicat Premium 方法
  • calico网络策略

    关于优先级order 为了与 Kubernetes 兼容 Calico 网络策略执行遵循 Kubernetes pod 的标准约定 如果没有网络策略适用于 Pod 则允许所有进出该 Pod 的流量 如果一个或多个网络策略应用于类型为 ing