阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

如何通过 Kubernetes 网络策略隔离 1500 个微服务

  • 2020-01-19
  • 本文字数:1184 字

    阅读完需:约 4 分钟

如何通过Kubernetes网络策略隔离1500个微服务

Monzo 安全团队撰文分享了他们实现 Kubernetes 网络策略的经历,该策略通过 Calico 的 API 为 1500 个微服务提供了隔离。


Monzo 是一家面向移动端的数字银行,它们在 AWS 上运行其核心基础设施。除了使用Kubernetes托管其微服务外,Monzo 还使用Apache Cassandra 作为主要数据库,使用 Apache Kafka 进行消息传递,并使用 Go 实现了其大部分程序代码。Monzo 安全团队将采用零信任网络作为他们的目标之一。零信任平台的原则是,网络内外的任何一个实体都是不被信任的,要访问私有信息必须要经过验证。Monzo 后端的每个服务只允许访问一个经过预先批准的服务列表。Monzo 大约拥有 1500 个服务,超过 9300 个服务间的交互,这也让该任务变得非常困难。在构建了一个通过分析代码来派生策略的自定义工具集之后,Monzo 团队在 Kubernetes 上使用了针对 Calico 的网络策略来提供隔离。


团队首先通过隔离一个服务来测试他们的初步方案。他们编写了一个名为 rpcmap 的自定义工具,这个工具可以通过分析静态代码来发现服务之间的依赖关系。根据 Monzo 后端工程师Jack Kleeman的说法,他们在集成测试或运行时选择静态分析的方式而不是观察的方式,主要是因为:


Monzo 有很多代码路径,没有一个可以涵盖所有内容的集成测试。在运行时,某项服务很少被调用并不意味着它从不会被调用;一间银行可以有一些每年只运行一次的服务进程。


规则必须按照可管理和可读的方式存储,而且不能破坏现有的服务。Monzo 安全团队采用了 Kubernetes 的 NetworkPolicy 来执行规则探测,并使用Calico网络插件来实现网络策略。这种初始方法在可测试性方面非常脆弱,并把维护规则列表的责任交由管理调用服务的团队负责。另一个引入的缺点就是开发团队必须手动编辑 Kubernetes 的配置文件。


为解决这些问题,Kleeman 说:“跟 Calico 社区讨论了网络策略的测试问题后,我们发现可以使用 Calico 的一些无法被 Kubernetes 访问的特性来测试我们的策略。”其中的一个特性允许流量访问网络策略通常不允许的内容,随后记录下来这种情况。Kubernetes网络策略通常采用选择器和标签的方式,在没有采用任何策略的时候,Kubernetes 允许 pod 之间的所有通信。Monzo 将他们的策略配置在最后运行,并监控网络流量来确定哪些服务会丢失数据包。


此后,团队将服务允许的流量列表切换为调用服务的一个属性,而不是目标服务的属性。服务通过标签声明它们在策略的入口(ingress)规范中需要访问到的服务。针对那些调用大量其他服务的服务,例如监控服务,则会按照“服务类型”进行分组,按照这样的准则,就没有必要列出每个服务了。rpcmap 被配置为每次提交时运行,部署管道把规则文件转换为服务标签。团队计划在未来使用服务网格而不是 CNI(容器网络接口)层来实现这一点,他们已经迁移到了一个使用 Envy 的自定义网格。


原文链接:


How Monzo Isolated Their Microservices Using Kubernetes Network Policies


2020-01-19 09:003122

评论

发布
暂无评论
发现更多内容

犀牛3D建模 Rhino 7 for Mac激活中文版最新

mac大玩家j

三维建模 三维建模软件 3D建模软件 犀牛7

YesPMP:引领未来众包协作的智能革新

知者如C

不一样的 AGI 黑客松!Founder Park x Zilliz x 智谱 AI 联合发起!

Zilliz

大模型 Zilliz AGI 向量数据库

数据通信网络之IPv6基础

timerring

数据通信网络

AE 3D粒子系统插件 Trapcode Particular最新激活版

胖墩儿不胖y

视频特效 Mac软件 视频特效插件 特效工具

墨迹天气亮相2023服贸会,以“新方案、新合作”彰显品牌新价值

Geek_2d6073

全国高等教育新愿景:《2023 中国人工智能人才学习白皮书》发布!

ModelWhale

人工智能 数据分析 人才培养 白皮书 高等教育

数字孪生的深海迷航

脑极体

数字孪生

使用Pyarmor保护Python脚本不被反向工程

高端章鱼哥

Python pyarmor

从4个特点为你解密华为云媒体网络底座AND

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号9月PK榜

掌握API数据检索:过滤和排序的综合指南

这我可不懂

API

4个视频教你正确使用华为云代码托管服务CodeArts Repo!

华为云PaaS服务小智

云计算 华为云 代码托管

小米 AR 运动主机「15 分钟消耗一碗米饭」;互联网行业平均薪资降至 3 万档丨RTE开发者日报 Vol.45

声网

国产化是什么意思?为什么要实现国产化?有什么意义?

行云管家

信创 国产化 国产系统

缓存你用对了吗?喜马拉雅缓存使用军规

喜马拉雅技术团队

redis 缓存 喜马拉雅 使用规范 xcache

未来人工智能的璀璨星辰

百度开发者中心

人工智能 生成式AI 文心一言

焱融科技助力智谱AI,打造大模型训练加速之道

焱融科技

AI大模型

百度智能云千帆大模型平台率先适配Falcon-180B!

Geek_2d6073

Node.js 遍历文件夹技巧:提升代码可读性与可维护性

Liam

node.js 程序员 后端 遍历 Node

PCB设计丨电源设计的重要性

华秋电子

PCB

专访大连1号/连理卫星总指挥于晓洲:OpenHarmony在航天领域交出创新答卷

最新动态

国家网络安全周2023时间是什么时候?有什么特点?谁举办的?

行云管家

网络安全 网络安全周

【运维 Pro】时序场景实践与原理 - 1. 分布与分区

YMatrix 超融合数据库

数据库 时序 超融合数据库 YMatrix

GreptimeDB 使用指南 | 3 分钟快速下载启动时序数据库

Greptime 格睿科技

数据库 时序数据库 Greptime GreptimeDB

欧洲卡车模拟2Euro Truck Simulator 2 for Mac(模拟经营游戏)中文激活版

mac

windows 游戏 苹果mac Euro Truck Simulator 欧洲卡车模拟

OpenHarmony:如何使用HDF驱动控制LED灯

互联网工科生

HDF 硬件设计 OpenHarmony

Vulkan内存模型+管理

江湖修行

移动端 OpenGL ES 渲染 vulkan

Sermant类隔离架构:解决JavaAgent场景类冲突的实践

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号9月PK榜

人工智能新范式,重新定义生产力

百度开发者中心

人工智能 生成式AI 文心一言

武林立志传:龙吟剑 mac攻略(武侠角色扮演游戏)中文移植版

mac

角色扮演游戏 Windows软件 苹果mac游戏 武林立志传 龙吟剑

如何通过Kubernetes网络策略隔离1500个微服务_容器_Hrishikesh Barua_InfoQ精选文章