离线部署的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.mzph.cn/news/602434.shtml

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

相关文章

CSS基础笔记-03选择器

CSS基础笔记系列 《CSS基础笔记-01CSS概述》《CSS基础笔记-02动画》 前言 在前面两篇博客中,我实际上已经使用过了选择器。但到底什么是选择器、有什么作用,我反而不能表达出来。因此,决定记录了我的学习和思考。 什么是选择器 selector…

计算机毕业设计 SpringBoot的一站式家装服务管理系统 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

前端axios封装和跨域问题

项目背景:uniappvue3tsvitepiniavant 1. 安装axios npm i axios2. 封装axios 创建一个名为http.ts的文件 import { ref } from "vue"; import axios from "axios";// 创建一个可以同步访问的 token 变量 export const token ref(null);// …

blender Principled BSDF

Principled BSDF是一种基于物理的着色器,它使用金属工作流,而不是镜面工作流。金属工作流假设金属材质没有漫反射分量,只有镜面反射分量,而非金属材质有漫反射和镜面反射分量。Metallic属性用于控制材质是金属还是非金属&#xff…

深入浅出 Zookeeper 中的 ZAB 协议

本文主要内容如下: ZAB 协议的全称是 Zookeeper Atomic Broadcase,原子广播协议。 作用:通过这个 ZAB 协议可以进行集群间主备节点的数据同步,保证数据的一致性。 在讲解 ZAB 协议之前,我们必须要了解 Zookeeper 的各…

在oracle中如何删除表中数据

oracle数据库,mysql数据库都是drop命令>truncate命令>delete命令,他们的执行方式、效率和结果各有不同。下面我们就来看看吧 一、drop命令 语句drop table 表名 说明: 1.用drop删除表数据,不但会删除表中的数据&#xff0c…

解决Canvas画图清晰度问题

最近在开发Web端远程桌面的时候遇到的一个问题,解决记录一下,分享给各位有需要用到的朋友。 先吹下水:远程桌面的连接我们是通过Websocket连接后,后端不断返回远程端的界面二进制数据流,我接收到之后转为图像&#xf…

window服务器thinkphp队列监听服务

经常使用linux的同学们应该对使用宝塔来做队列监听一定非常熟悉,但对于windows系统下,如何去做队列的监听?是一个很麻烦的事情。 本文将通过windows系统的服务来实现队列的监听。 对于thinkphp6 queue如何使用,不再赘述。其它系…

HDU 2841:Visible Trees ← 容斥原理

【题目来源】http://acm.hdu.edu.cn/showproblem.php?pid2841【题目描述】 There are many trees forming a m * n grid, the grid starts from (1,1). Farmer Sherlock is standing at (0,0) point. He wonders how many trees he can see. If two trees and Sherlock are in…

Windows系统如何使用VNC远程连接Deepin桌面【内网穿透】

文章目录 1. 安装x11vnc2. 本地远程连接测试3. Deepin安装Cpolar4. 配置公网远程地址5. 公网远程连接Deepin桌面6. 固定连接公网地址7. 固定公网地址连接测试 x11vnc是一种在Linux系统中实现远程桌面控制的工具,它的原理是通过X Window系统的协议来实现远程桌面的展…

跟随chatgpt从零开始安装git(Windows系统)

为什么我们要安装Git?Git有什么用? 1. 版本控制:Git 可以追踪代码的所有变化,记录每个提交的差异,使您能够轻松地回溯到任何历史版本或比较不同版本之间的差异。 2. 分支管理:通过 Git 的分支功能&#xff…

C++ Qt开发:Charts与数据库组件联动

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍Charts组件与QSql数据库组件的常用方法及灵活…

wordpress个人博客/杂志主题Pin Premium

Pin Premium WordPress主题是针对博主的时尚且自适应的Pinterest风格主题。使用HTML5和CSS3技术创建,带有有效代码(两个演示),完全响应,在所有移动设备上看起来完美,可在任何设备和 PC 上轻松使用。 响应式设计针对平板电脑和智能…

揭秘大模型「幻觉」:数据偏差、泛化与上下文理解的挑战与解决之道

什么是大模型「幻觉」 所谓的「幻觉」指的是当大模型生成与现实不符或逻辑上不连贯的信息时。这通常发生在模型对某些数据理解不足或数据本身存在偏差的情况下。由于模型是基于概率统计和以往数据训练的,它们可能在面对未知或少见情况时产生不准确的推断。 大模型不具有本地知…

求二叉树的深度C语言实现

在二叉树中&#xff0c;深度是指从根节点到最远叶子节点的最长路径上的边数。求解二叉树的深度通常采用递归的方法&#xff0c;以下便是求二叉树深度的C代码实现&#xff1a; #include <stdio.h> // 假设已经定义了二叉树节点结构体 typedef struct BiTreeNode {int dat…

柯桥学韩语【韩语网络用语】听说最近的年轻人都重视슬세권,역세권....吗?

来解锁一下今天的新词“슬세권” 슬리퍼와 세권(勢圈)의 합성어로 슬리퍼와 같은 편한 복장으로 각종 여가편의시설을 이용할 수 있는 주거 권역을 이르는 신조어다. 슬세권是"拖鞋"和"势圈"的合成词&#xff0c;即使穿着像拖鞋类似的便装&#xff0c; …

J2 - ResNet-50v2实战

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 目录 环境步骤环境设置数据准备图像信息查看 模型设计ResidualBlock块stack堆叠resnet50v2模型 模型训练模型效果展示 总结与心得体会 环境…

网页服务, 静态页面

文章目录 概要demo示例说明 概要 创建微服务时&#xff0c; 可以将静态资源(前端界面)放入resource中&#xff0c; 通过接口来访问 参考博客: https://blog.csdn.net/wangxin1949/article/details/89016428 demo示例 Controller RequestMapping(“/terminal/task”) public…

Sinkhorn:求解方法和Python实现

Notion – The all-in-one workspace for your notes, tasks, wikis, and databases. 注&#xff1a;本人笔记 【3种求解方法】 【Python实现】 【dustbin】 【log space】

深度学习中的知识蒸馏

一.概念 知识蒸馏&#xff08;Knowledge Distillation&#xff09;是一种深度学习中的模型压缩技术&#xff0c;旨在通过从一个教师模型&#xff08;teacher model&#xff09;向一个学生模型&#xff08;student model&#xff09;传递知识来减小模型的规模&#xff0c;同时保…