利用一容器一IP机制在 Mesos中提高网络隔离效果

2023-12-12 19:19

本文主要是介绍利用一容器一IP机制在 Mesos中提高网络隔离效果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【编者的话】曾经听到不少运维管理人员抱怨,Mesos何时可以为同一集群中的每套容器系统提供不同的IP地址?众所周知,在网络架构领域,没有哪种方案能够一劳永逸地适应全部具体场景。然而,Mesos 0.23.0 版本中做出大胆实践,首次实现一容器一IP机制支持原生 Mesos 容器化方案,而且可满足很多特定需求。

Apache Mesos 利用 Docker 以及 Linux cgroups 等操作系统容器,旨在实现任务与资源隔离。尽管这种解决方案能够在 CPU 以及内存等本地资源层面提供良好成效,但却无法作为切实可行的跨容器网络资源管理机制发挥作用。有鉴于此,Mesos 如今开始为同一集群当中的每套容器系统提供不同的 IP 地址(即一容器一 IP 机制),这项特性于 Mesos 0.23.0 版本中首次出现。

如果没有一容器一 IP 机制 ……

容器实现方案会共享全部主机 IP 地址,并因此共享主机端口。

这意味着应用程序会被分配至非标准端口以避免端口冲突状况,最终导致其实际监听的并非已知端口。这就阻碍了其服务发现能力,并使得其它应用程序很难与容器化应用程序进行对接。

列表项目网络隔离能力缺失还会给多租户环境带来安全隐患,尤其是在一套 Mesos 集群会被多种不同类型的应用程序所共享的情况下。

举例来说,如果某家金融企业同时在单一 Mesos 集群当中运行风险分析模拟与面向客户的应用程序,那么相关管理人员将很难解决恶意应用意外访问到敏感信息的难题。另外一种风险在于,性能不佳的应用程序有可能拖累整套网络的速度表现,在这种情况下处于同一节点之上的关键性任务应用将有可能得不到充足的资源供给。

最后,每家企业都拥有不同的网络需求。在网络架构领域,没有哪种方案能够一劳永逸地适应全部具体场景。

为了解决上述难题,Mesos 社区已经对 Mesos 项目进行了强化,确保一容器一 IP 机制能够支持原生 Mesos 容器化方案(预计未来面向 Docker 容器的支持能力也将推出)。这套可插拔解决方案还允许 Calico、WeaveWorks 以及其它一些第三方网络隔离方案供应商的产品以插件形式作用于我们的 Mesos 集群。

如何实现一容器一IP机制支持原生 Mesos 容器化方案?

这里写图片描述

作为 Mesos 当中的一容器一 IP 机制,其设计目标之一在于建立一套可插拔架构,允许用户从现有第三方网络供应商处选择解决方案并作为网络实现基础。为了达成这一目标,其中共包含五项关键性组件:

  1. 负责为即将启用的容器指定 IP 要求的框架/调度标签。这是一项可选服务,能够在不带来任何副作用的前提下将一容器一 IP 能力引入现有框架当中。
  2. 由一个 Mesos master 节点与一个 Mesos agent 节点共同构建的 Mesos 集群。
  3. 套第三方 IP 地址管理(简称 IPAM)服务器,负责根据需要进行 IP 地址分配,并在 IP 地址使用完毕后将其回收。
  4. 第三方网络隔离方案供应程序负责对不同容器系统加以隔离,并允许运维人员通过配置调整其可达性及路由方式。
  5. 作为轻量级 Mesos 模块被加载至 agent 节点当中的网络隔离模块将负责通过调度程序进行任务要求审查,同时利用 IP 地址管理与网络隔离服务为对应容器提供 IP 地址。在此之后,其会进一步将IP地址交付至 master 节点以及框架。
    虽然 IP 分配与网络隔离功能完全可以由单一单元负责实现,不过立足于概念层面,Mesos 提供了两项不同的服务方案。其一设想由两家彼此独立的服务供应程序分别提供IP地址管理与网络隔离服务。举例来说,其中之一利用 Ubuntu FAN 实现 I P地址分配,而另一方则利用 Calico项目进行网络隔离。

一容器一 IP 机制的可选属性使得现有框架能够不受影响,这就使集群滚动升级成为了可能。因此,如果用户以混合模式运行多套容器系统——其中一部分采用一容器一 IP 机制,另一部分则仍按默认方式运行——那么同一集群之内不会出现任何兼容性问题。

一容器一 IP 服务的出现使得我们能够对网络隔离进行粗粒度与细粒度调整。尽管仍然需要依赖于第三方网络隔离方案供应程序,但如果只是单纯希望以粗粒度方式进行网络隔离设置,那么大家完全可以使用网络路由表。

一容器一 IP 机制的最佳实践

如果没有一容器一 IP 机制,那么应用程序必须注册

期待为用户带来全新感受

一容器一 IP 方案允许我们为每套 Mesos 容器系统分配一个惟一的 IP 地址。这不仅解决了长久以来困扰着管理人员的端口冲突问题,允许应用程序对已知常用端口进行监听,同时也能够更为轻松地实现服务发现能力。这套可插拔机制允许用户选择并使用自己喜爱的第三方 IP 地址管理与网络隔离方案,并确保其切实满足自己的特定需求。

有越来越多的朋友体验了 Mesos 的一容器一 IP 机制所带来的全新网络控制感受。大家也不妨去试试,与我们一起交流分享试用经验。

原文链接:
https://mesosphere.com/blog/2015/12/02/ip-per-container-mesos/

数人云 云时代的操作系统

—— 基于Mesos最成熟企业级容器云
1) 满足业务爆发增长需求,保障业务应用永不掉线
2) 像用一台电脑一样统一管理整个集群
3) 一键部署任何容器、分布式应用

这篇关于利用一容器一IP机制在 Mesos中提高网络隔离效果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/485666

相关文章

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

SpringRetry重试机制之@Retryable注解与重试策略详解

《SpringRetry重试机制之@Retryable注解与重试策略详解》本文将详细介绍SpringRetry的重试机制,特别是@Retryable注解的使用及各种重试策略的配置,帮助开发者构建更加健... 目录引言一、SpringRetry基础知识二、启用SpringRetry三、@Retryable注解

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

SpringKafka错误处理(重试机制与死信队列)

《SpringKafka错误处理(重试机制与死信队列)》SpringKafka提供了全面的错误处理机制,通过灵活的重试策略和死信队列处理,下面就来介绍一下,具有一定的参考价值,感兴趣的可以了解一下... 目录引言一、Spring Kafka错误处理基础二、配置重试机制三、死信队列实现四、特定异常的处理策略五

如何高效移除C++关联容器中的元素

《如何高效移除C++关联容器中的元素》关联容器和顺序容器有着很大不同,关联容器中的元素是按照关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的,本文介绍了如何高效移除C+... 目录一、简介二、移除给定位置的元素三、移除与特定键值等价的元素四、移除满足特android定条件的元

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.