离线部署的MinIO


网络有不同的部分,例如 DMZ、公共、私有、堡垒等。这实际上取决于您的组织和网络要求。在部署应用程序时,任何应用程序,我们都需要考虑类型以及它是否需要位于网络的特定部分。

例如,如果要部署数据库,则不希望它位于公用网络上,而可能希望它位于无法从外部 Internet 访问的专用网络中。为什么?仅仅因为数据库中有更多敏感信息,而某些数据库中的访问控制列表不够严格,无法应对直接访问时可能受到损害的可能性。此外,最终用户很少直接访问数据库,他们通常通过前端应用程序访问数据库,然后对数据库执行结构化查询。

在这篇文章中,我们将讨论什么是内外网隔离的私有专网,在这样的环境中部署 MinIO 时要考虑什么,以及如何在之后与其他隔离网络站点一起复制和扩展它。

通常,在专用网络中,以下 CIDR 中的 IP(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)中,您无法从 Internet 入站与节点通信,除非您使用具有首先必须连接到的公共 IP 的代理,例如 VPN 或反向代理。通常,节点可以与外界通信,因为数据中心通常使用 NAT 或某种 Internet 网关 (IGW) 将公共请求路由到此 NAT/IGW 设备之外,以便能够下载包以进行上传等操作。

顾名思义,内外网隔离的私有专网更进一步,您不仅无法从 Internet 访问它,而且也无法从节点连接到 Internet。节点在此网络中完全锁定。您仍然可以通过 VPN 访问它们,但通常建议连接到堡垒主机,然后仅从堡垒节点的专用 IP 访问内外网隔离的私有专网。

在内外网隔离的私有专网中部署 MinIO

那么,为什么需要这种安全级别呢?嗯,有很多目的。我们提到了数据库,但这尤其适用于关键的基础设施组件,例如 MinIO,在这些组件中,您无法承受向外界公开其中的数据,但您需要存储它们并可供生态系统中的其他应用程序访问。

在设计内外网隔离的私有专网时,必须确保该节点运行所需的所有公共资源都需要可供内外网隔离的私有专网访问。这意味着操作系统包、RPM/APT 包、MinIO 二进制文件以及节点需要从互联网拉取的任何其他依赖项都需要已经可用于内外网隔离的私有专网。这可以通过在数据中心本地的称为 Ops Network 的特殊网络中同步所有这些依赖项的存储库来实现。Ops Network 的特点是,在此网络中运行的任何服务都可以与 Internet 通信(反之亦然),数据中心内专用网络中的任何应用程序(甚至是隔离网络)都可以与 Ops Network 中的服务通信。使用这种方法,您不仅可以同时杀死两只鸟,还可以杀死几只鸟

您可以清理从 Internet 下载的软件包,以确保它们没有被篡改。您可以放心,您的所有应用程序都将使用经过审查的包,并且可以安全地从隔离网络环境中的受信任存储库镜像安装。

要构建的节点所需的所有包都可以在本地获得,如果上游 repo 中断,不会影响离线环境的运行。

如果出现完全的节点故障,时间至关重要。替换节点的速度越快,如果更多节点发生故障,群集超出仲裁的可能性就越小。通过更快地重建节点,您可以降低 MTR(平均解决时间)。

一旦所有需要的资源都可以通过内外网隔离的私有专网在内部访问,在内外网隔离的私有专网中部署 MinIO 就像其他任何资源一样。我们建议您至少在单个站点上执行多节点多驱动器部署,以便在发生驱动器故障甚至整个节点故障时,纠删码将确保将数据复制到其他磁盘和节点。您只需要确保运行 MinIO 的端口在所有节点上都处于打开状态,并且可以从内外网隔离的私有专网内双向访问。

目前为止,一切都好。我们设计了一个内外网隔离的私有专网。找到了一种在其中部署 MinIO 的方法,并在本地镜像上游资源。但是我们实际上如何使用集群呢?如果它无法访问外部,我们如何向其添加数据?嗯,这实际上很简单,我们可以使用与传统数据库类似的技术。网络的设计应使 MinIO 只能通过其前面的应用程序访问。它可能是一个成熟的前端应用程序,可能充当 CDN,也可能是一个简单的 ETL 工作流,它使用 MinIO 来检索原始数据并存储最终处理结果。

最终用户永远无法直接访问 MinIO,因此,如果公有子网或 DMZ 中出现网络入侵,他们将永远无法访问离线网络(如 MinIO)中的服务,因此您的数据和模型是安全的。此外,您会注意到您的整个集群运行比以前稳定得多,但这是为什么呢?其他一切都一样吗?

原因是稳定性很重要。内外网隔离的私有专网中的任何内容都不会更新,除非您明确希望它更新。让我绕道而行。十年前,当我在 SRE 团队工作时,有一天,我们的任务是升级 260 台 Redis 服务器。当我们进行例行维护准备为新版本准备二进制文件时,我们注意到我们所有的页面加载量都在增加,而一些功能根本没有加载。不幸的是,所有这些都是由 Redis 支持的服务。我们很困惑,我们只上演了二进制文件,为什么一切都离线了?5 分钟后,我们立即注意到所有 Redis 服务器都在自动升级到更新的二进制文件,我们只是暂存,而不是部署。事实证明,在我们的基础设施自动化系统(Puppet)中,我们将其设置为在注意到正在暂存的新包时立即升级Redis。因此,它做了它应该做的事情,升级了所有服务器,随后一次关闭了多个 Redis 集群。所以错是我们的,我们很快就纠正了。即使我们的 Redis 服务器处于隔离网络状态,我们仍然设法将其关闭,所以试想一下,如果您直接从上游拉取它,您的服务将根据软件包维护者的心血来潮进行更新。

虽然 MinIO 更新是向后兼容的,我们强烈建议您通过我们的无停机原子升级尽可能定期地跟上新版本,但我们仍然不希望您在发布二进制文件时升级您的集群,这只是糟糕的 devops 做法,您至少应该知道您的系统上正在升级什么。一些团队加倍努力,使整个节点不可变,这意味着,每当需要升级甚至修改任何内容时,他们都必须重建整个节点,以确保没有配置漂移。但在大多数情况下,这可能是一项比所需更大的任务,因此在这些情况下,拥有一个隔离网络环境是一个不错的选择。

我们谈到了单个区域中的单个集群,但多站点呢?我们的内外网隔离的私有专网现在是否必须通过互联网进行通信才能到达其他站点?这难道没有破坏隔离网络环境的目的吗?

与互联网通过物理光纤连接的方式类似,数据中心在很大程度上通过互联网交换设施相互连接。这些设施提供暗光纤WAN链路(广域网),您基本上可以做任何事情。您可以创建自己的 ISP,也可以使用它来连接位于世界各地的两个不同数据中心。在这些WAN链路上运行的协议可以是任何东西,您不需要在此基础上运行VPN。虽然我们仍然建议对 MinIO 流量进行加密,但 WAN 链路也应该有自己的加密,这样数据就不会被相邻流量嗅探,因为基本上所有这些链都是共享的。

一旦 WAN 链路启动并运行,您将能够与专用内外网隔离的私有专网上的其他 MinIO 集群进行通信,就像站点到站点复制在常规 Internet 上运行一样。这里唯一的区别是:

  • 流量是完全私有的,这提供了额外的安全层

  • 由于您不与其他任何人共享管道,因此您将有权访问管道的全部吞吐量,通常对于关键和时间敏感的应用程序,首选专用的分配 WAN 链路。

由于您不与其他任何人共享管道,因此您将有权访问管道的全部吞吐量,通常对于关键和时间敏感的应用程序,首选专用的分配 WAN 链路。

请花点时间阅读这篇博文,其中我们将讨论站点到站点复制的最佳实践。

监控隔离网络中的 MinIO

这是一个很好的问题。这就是我们为 mc diag 命令提供隔离网络标志的确切原因。不仅如此,您还可以对数据进行匿名化处理,以便在与诊断捆绑包一起发送之前对主机名和 IP 等敏感信息进行混淆处理。

要在 airgap 中创建诊断捆绑包,请运行以下命令,该命令也会对数据进行匿名化处理

mc support diag myminio --airgap --anonymize=strict● CPU Info ... ✔
● Disk Info ... ✔
● Net Info ... ✔
● Os Info ... ✔
● Mem Info ... ✔
● Process Info ... ✔
● Server Config ... ✔
● System Errors ... ✔
● System Services ... ✔
● System Config ... ✔
● Admin Info ... ✔mc: MinIO diagnostics report saved to myminio-health_20231111053323.json.gz

总结

MinIO 可以很好的在私有网络中进行部署,完全隔离对应的数据,保障您的数据安全。

如果需要专业技术支持请联系MinIO中国支持团队4008-566-339。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/232750.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot+redisTemplate多库操作

单库操作 我做了依赖管理&#xff0c;所以就不写版本号了添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>配置文件 spring:redis:database: 2…

基于RetinaFace+Jetson Nano的智能门锁系统——第二篇(配置环境)

文章目录 设备一、安装远程登录终端Xshell1.1下载Xshell1.2新建回话1.3查询ip地址1.4启动连接 二、安装远程文件管理WinScp2.1下载WinScp2.2连接Jetson Nano2.3连接成功 三、安装远程桌面VNC Viewer3.1下载VNC Viewer3.2在Jetson Nano安装VNC Viewer3.3设置VINO登录选项3.4将网…

如何做一个炫酷的Github个人简介(3DContribution)

文章目录 前言3D-Contrib第一步第二步第三步第四步第五步第六步 前言 最近放假了&#xff0c;毕设目前也不太想做&#xff0c;先搞一点小玩意玩玩&#xff0c;让自己的github看起来好看点。也顺便学学这个action是怎么个事。 3D-Contrib 先给大家看一下效果 我的个人主页&am…

MIT 6.s081 实验解析——labs2

系列文章目录 MIT 6.s081 实验解析——labs1 MIT 6.s081 实验解析——labs2 文章目录 系列文章目录测试判断流程System call tracingsysinfo![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ab9ca34f1fc64b6aa1df74613dc1a397.png) 测试判断流程 完成代码后将.c文…

服务器磁盘挂载及格式化

一边学习,一边总结,一边分享! 写在前面 最近一直折腾组装的电脑,来回折腾了很久关于我花费六千多组了台window+Linux主机,目前基本是可以使用了。对于Windows主机配置基本是没问题,一直在使用,以及桌面化软件,都可以自己安装,只是说这台主机有些软件可能一时半会安装…

互联网分布式应用之SpringDataJPA

SpringDataJPA Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机&#xff0c;Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. Spring整合Hibernate 2…

[C#]使用纯opencvsharp部署yolov8-onnx图像分类模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 YOLOv8 是一个 SOTA 模型&#xff0c;它建立在以前 YOLO 版本的成功基础上&#xff0c;并引入了新的功能和改进&#xff0c;以进一步提升性能和灵活性。具体创新包括一个新的骨干网络、一个新…

CSS 压重按钮 效果

<template><view class="cont"><div class="container"><div class="pane"><!-- 选项1 --><label class="label" @click="handleOptionClick(0)":style="{ color: selectedOption ==…

精进单元测试技能 —— Pytest断言的艺术!

本篇文章主要是阐述Pytest在断言方面的应用。让大家能够了解和掌握Pytest针对断言设计了多种功能以适应在不同测试场景上使用。 了解断言的基础 在Pytest中&#xff0c;断言是通过 assert 语句来实现的。简单的断言通常用于验证预期值和实际值是否相等&#xff0c;例如&#…

FlinkSQL中【FULL OUTER JOIN】使用实例分析(坑)

Flink版本&#xff1a;flink1.14 最近有【FULL OUTER JOIN】场景的实时数据开发需求&#xff0c;想要的结果是&#xff0c;左右表来了数据都下发数据&#xff1b;左表存在的数据&#xff0c;右表进来可以关联下发&#xff08;同样&#xff0c;右表存在的数据&#xff0c;左表进…

FlinkAPI开发之数据合流

案例用到的测试数据请参考文章&#xff1a; Flink自定义Source模拟数据流 原文链接&#xff1a;https://blog.csdn.net/m0_52606060/article/details/135436048 概述 在实际应用中&#xff0c;我们经常会遇到来源不同的多条流&#xff0c;需要将它们的数据进行联合处理。所以…

Apache Paimon:Streaming Lakehouse is Coming

摘要&#xff1a;本文整理自阿里云智能开源表存储负责人&#xff0c;Founder of Paimon&#xff0c;Flink PMC 成员李劲松&#xff08;花名&#xff1a;之信&#xff09;、同程旅行大数据专家&#xff0c;Apache Hudi & Paimon Contributor 吴祥平、汽车之家大数据计算平台…

Mybatis实现增删改查的两种方式-配置文件/注解

环境准备 1.数据库表tb_brand -- 删除tb_brand表 drop table if exists tb_brand; -- 创建tb_brand表 create table tb_brand(-- id 主键id int primary key auto_increment,-- 品牌名称brand_name varchar(20),-- 企业名称company_name varchar(20),-- 排序字段ordered int…

[Flutter]WebPlatform上运行遇到的问题总结

[Flutter]WebPlatform上运行遇到的问题总结 目录 [Flutter]WebPlatform上运行遇到的问题总结 写在开头 正文 Q1、不兼容判断 Q2、跨域问题 其他 写在结尾 写在开头 Flutter项目已能在移动端完美使用后&#xff0c;想看看在桌面端等使用情况 基于Flutter3.0后已支持Wi…

前端框架中的状态管理(State Management)

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

李沐-《动手学深度学习》-- 01-预备知识

一、线性代数知识 1. 矩阵计算 a. 矩阵求导 ​ 当y和x分别为标量和向量时候&#xff0c;进行求导得到的矩阵形状&#xff0c;矩阵求导就是矩阵A中的每一个元素对矩阵B中的每一个元素求导 ​ 梯度指向的是值变化最大的方向 ​ 分子布局和分母布局&#xff1a; b. 常识 ax…

知识付费平台搭建?找明理信息科技,专业且高效

明理信息科技知识付费saas租户平台 在当今数字化时代&#xff0c;知识付费已经成为一种趋势&#xff0c;越来越多的人愿意为有价值的知识付费。然而&#xff0c;公共知识付费平台虽然内容丰富&#xff0c;但难以满足个人或企业个性化的需求和品牌打造。同时&#xff0c;开发和…

群晖NAS+DMS7.0以上版本+无docker机型安装zerotier

测试机型&#xff1a;群晖synology 218play / DSM版本为7.2.1 因218play无法安装docker&#xff0c;且NAS系统已升级为7.0以上版本&#xff0c;按zerotier官网说法无法安装zerotier, 不过还是可以通过ssh终端和命令方式安装zerotier。 1、在DSM新建文件夹 用于存放zerotier脚…

2023我的编程之旅-地质人的山和水

引言 大家好&#xff0c;我是搞地质的。外行人有的说我们游山玩水&#xff0c;有的说我们灰头土脸&#xff0c;也有的说我们不是科学。 而我说&#xff0c;这是一门穷极一生青春&#xff0c;值得奉献的行业。这是一门贴近民生&#xff0c;又拥抱自然的学科。他的真理性在于探…

进阶学习——Linux系统安全及应用

目录 一、系统安全加固 1.账号安全基本措施 1.1系统账号清理 1.1.1延伸 1.2密码安全控制 1.3命令历史限制 1.4终端自动注销 二、使用su命令切换用户 1.用途及用法 2.密码验证 3.限制使用su命令的用户 4.查看su操作记录 5.sudo&#xff08;superuse do&#xff09;…