带有 Vagrant 和 Virtualbox 的 Elasticsearch 集群

这篇具有很好参考价值的文章主要介绍了带有 Vagrant 和 Virtualbox 的 Elasticsearch 集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

模拟分布式存储和计算环境的一种简单方法是使用 Virtualbox 作为 VM(“虚拟机”)的提供者,使用 Vagrant 作为前端脚本引擎来配置、启动和停止这些 VM。这篇文章的目标是构建一个集群虚拟设备,提供 Elasticsearch 作为可由主机使用/控制的服务。本文中使用的工件可以从 Github下载。

一、背景
面对不断增长的前端需求,后端容量扩展通常通过用更强大的服务器替换较弱的服务器(CPU/RAM/磁盘方面)来解决,即所谓的“垂直扩展”。这与“水平扩展”相反,“水平扩展”只是简单地添加更多服务器来处理额外的需求。直观上,后一种模型很有吸引力,因为它听起来工作量更少!在传统的以 RDBMS 为中心的应用程序中,别无选择,垂直扩展实际上是有意义的,因为很难跨大型分布式数据表进行连接。但垂直扩展有其局限性,更重要的是,在达到这些限制之前,垂直扩展就变得非常昂贵。NoSQL 数据库忽略关系(RDBMS 的“R”)以允许更简单的水平扩展,现已成为当今需要大规模扩展(如 facebook/google 等)的应用程序的首选数据存储。

读者可以参考《Hadoop:权威指南》,其中 Tom White 深入探讨了这些规模问题。在分布式存储和 CPU 上运行的应用程序必须处理自己的问题,例如让 CPU 忙于处理其“本地”数据,确保集群成员彼此了解并知道谁拥有哪部分数据,并可能根据协调、写入等需要选举领导者/主人,因为实施细节因系统而异。我们不会在这里深入探讨所有内容,但我们这篇文章的目标更加务实:

2023 年容器将会发生什么

DZone 的 2023 年容器趋势报告将探讨容器的当前状态、全球容器化战略的主要趋势和进展,以及用于实现软件架构现代化的建设性内容。


开发一种方法来运行由几个节点(“来宾”)组成的虚拟集群,其中来宾目前是由 Virtualbox 从我的笔记本电脑中划分出来的。稍后我们将扩展相同的方式在AWS提供的节点集群上运行服务
在此访客集群上安装分布式数据存储。现在是 Elasticsearch,所以我们可以了解一下机制
确认此“虚拟 Elasticsearch 设备”提供主机完全可控的服务。
2. 虚拟盒子
我们使用 Oracle 的Virtualbox作为来宾虚拟主机的提供者。Virtualbox 可以免费使用,在我的 Linux 笔记本电脑上运行得很好(我的笔记本电脑上运行 Ubuntu 15.04 64 位,具有 8 核 i7、2.2GHz CPU、16GB RAM),并且有关于如何控制要创建的主机的各个方面的大量文档。还有任意数量的开源 Linux 发行版的预构建映像,您可以将它们简单地放入来宾操作系统中。它提供了多种网络选项(我发现有时令人畏惧)来扩展/限制客人的可访问性/能力。出于我们的目的,我们更喜欢具有以下标准的“仅主机”、“专用”网络。

客人和主人应该能够互相交谈。我们希望客人形成一个集群并共同努力提供服务。主机应该能够控制和使用访客集群提供的服务。
客人应该能够访问互联网。这样他们就可以下载运行任何应用程序所需的任何操作系统更新和软件包。
客人无法从外部进入。这只是目前的一个弥补要求,因为我不想将服务暴露给外部。主机是服务的消费者,它可以将其整合到自己的服务中,如果愿意的话,可以向外部提供该服务。
最后,为了便于使用和可移植性,每个来宾在创建时都应“分配”一个 IP 地址和名称。
安装 Virtualbox 并创建各种虚拟机非常简单。根据我下载的预构建映像,我可以按照我想要的方式设置单个虚拟机。对适配器 1 使用 NAT,对适配器 2 使用仅主机接口,并在虚拟机上激活仅主机接口。我想克隆它并构建其他客户端,但我在以可靠/可重复的方式正确建立网络时遇到了麻烦。网络从来都不是我的强项,在通过 GUI 和命令行尝试了一些网络选项后,我放弃了尝试掌握它。我确信网络专家可以做到这一点,所以这当然不是 Virtualbox 的限制,而是我的限制。

但更合理的是,我不想登录来宾进行设置,或者更糟糕的是 - 通过 VirtualBox 提供的 GUI 更改每个来宾的设置。这绝对无法扩展,重现起来很痛苦,而且容易出错。我想要一种交钥匙解决方案,其中我可以预先编写虚拟机集群创建的所有方面的脚本,然后只需运行它即可创建该集群,并安装、启动和培养所有工具。

我很高兴地发现,Vagrant可以让人们轻松地做到这一点。基本上,他们已经弄清楚了“vboxmanage”命令(及其选项!)的确切顺序,以运行以设置由一些高级要求指定的集群......这就是我正在尝试做的事情,他们已经完成了!另外,由于使用 Vagrant 设置的集群是基于文件的,我们可以对其进行版本控制并共享它(与 OVA 文件相比较小),以便在其他地方准确地重现集群。也许由于我在网络设置方面遇到的问题,我有偏见,但读者会参考类似“为什么 Vagrant?” 的讨论。或者为什么我应该使用 Vagrant 而不是 VirtualBox?Vagrant 对我来说真正的吸引力在于它可以通过插件与其他 VM 提供商(例如 AWS、VMWARE)无缝协作,因此只需更改提供商名称即可重复使用相同的配置文件/脚本。从我的笔记本电脑中提取资源来构建虚拟机对于降低机制来说是很好的,但它不会提供高性能的集群!

3.流浪者
我们花了很多言语试图到达这里,所以我们毫不犹豫地直接投入其中。我们准备一个名为“Vagrantfile”的文本文件,其中包含我们要构建的集群的高级详细信息。在命令提示符下运行将生成一个示例文件,可以根据我们的喜好进行编辑。以下是我们的文件满足第 2 节中规定的要求的情况。

我们想要设置一个 2 节点集群(第 3 行)。
我们选择作为每个操作系统映像。如果该映像之前尚未下载到本地存储库(VirtualBox 的“默认计算机文件夹”),Vagrant 将下载它(第 4 行)
我的笔记本电脑有 16GB RAM,我想始终为主机保留 8GB。其余的则由客人平分。同样,来宾也只能使用部分 CPU。(5、6 号线)
我们循环遍历每个客人:
设置其图像(#13)和名称(#14)。
我们选择“ private_network ”模式并设置 IP 地址(#15)。这为我们提供了第 2 节中想要的网络模型。
第 19 行是关于为虚拟机配置工具和应用程序。非常强大且方便。我们可以自动化启动集群每个成员的过程,只使用我们希望该来宾负责的应用程序。无需通过 ssh 连接到每位访客并进行单独的安装 — 非常节省时间!除了简单的 shell 脚本之外,Vagrant 还允许使用其他机制(如 Docker、Chef、Ansible、Puppet 等)来进行配置过程。这里我们使用 shell 脚本“bootstrap.sh”,向其中传递我们需要的参数来设置 Elasticsearch。
这就是 Vagrant 的全部内容,真的。剩下的都是很好的老式 shell 脚本,我们都是老手了——太棒了!一旦脚本准备就绪,我们就运行以启动集群,完成我们的工作并运行以关闭集群。在我们运行之前,集群将保留其应用程序/配置/数据,以便我们可以随时运行以使用集群及其服务。

4. 配置Elasticsearch
这相当简单。要知道的关键一件事是 Vagrant 自动在主机和来宾之间启用一个共享目录。这是文件“Vagrantfile”所在的目录。在来宾上,此目录可作为“/vagrant”访问。因此,如果我们在主机上“Vagrantfile”所在的位置有文件“a/b/c/some_file”,则可以在客户机上以“/vagrant/a/b/c/some_file”的形式访问该“some_file”。我们使用此功能来共享需要在访客上安装的预下载软件包,以及我们想要在启动后运行的任何脚本。文章来源地址https://www.toymoban.com/news/detail-735282.html

到了这里,关于带有 Vagrant 和 Virtualbox 的 Elasticsearch 集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云原生之深入解析如何使用Vagrant Kubespray快速初始化K8S集群

    Vagrant 是一款用于构建及配置虚拟开发环境的软件,采用 Ruby 编写,主要以命令行方式运行。其主要使用 Oracle VirtualBox 提供虚拟化系统,与 Chef,Salt,Puppet 等环境配置管理软件搭配使用,可以实现快速搭建虚拟开发环境。 Kubespray 是利用 Ansible 工具,通过 SSH 协议批量让指定

    2024年02月15日
    浏览(33)
  • vagrant 虚拟机扩容磁盘

    参考博客:https://blog.csdn.net/marina_1/article/details/122238721 vagrant 版本 修改vagrant虚拟机配置文件Vagrantfile,添加磁盘配置参数。 重启虚拟机 登录虚拟机查看存储是否增加 没有增加需要配置一下 运行sudo cfdisk /dev/sda,这时候能够看到新增的空间了。原本是19.5GB,配置里改为了100GB,

    2024年02月09日
    浏览(30)
  • vagrant 用户名密码登录

    正常登录后          sudo -i 切换到root权限        vim /etc/ssh/vim sshd_config        将PasswordAuthentication no设置         为yes 重启sshd.service服务         systemctl restart sshd.service

    2024年01月16日
    浏览(31)
  • Vagrant创建Oracle RAC环境示例

    利用Vagrant安装Oracle RAC(默认为non-CDB模式),生成2台虚机,耗时约 1小时 。 可以看到vagrant生成了node1和node2两台虚机: 两台虚机启动后,32G的电脑内存占用由29%升至69%,消耗内存约 13G 。 空间方面,两台虚机刚生成时,新增空间占用为vagrant目录下的113G(共享存储)加虚机目

    2024年01月21日
    浏览(36)
  • Vagrant安装Oracle Data Guard环境示例

    在Windows 11下,通过Vagrant安装标准的Data Guard环境(默认为non-CDB模式),耗时约26分钟,共生成2台虚机。以下为安装日志: 查看主备机的状态: 使用ssh登录host1,即Primary host: 占用空间25.2GB,其实包含了ORCL_software目录下5.54GB的软件,即Oracle DB和GI软件(GI软件实际并没有用到

    2024年01月21日
    浏览(33)
  • vagrant 安装虚拟机,docker, k8s

    本机是 mac, 但是这一步不影响,找对应操作系统的安装方式就行了。 vagrant 下载地址 VirtualBox 下载地址 找到对应系统下载,安装就可以。 尽量把虚拟机和 vagrant 放到一个文件夹中,规避一些问题.后面的 vagrant 命令都要 在这个文件目录下执行。 这一步比较重要,这一步就是

    2024年04月22日
    浏览(28)
  • Oracle Vagrant Box 无法登录的2个问题

    安装Oracle Database 19c 的 VagrantBox ,非常顺利,耗时如下: 前面一切顺利,但是vagrant ssh和vagrant putty均不能登录虚机。我的环境是Windows 11,Vagrant 2.4和VirtualBox 7.0。 这个错误肯定是和ssh相关的,以下命令显示了vagrant中ssh的配置。其中IdentityFile就是私钥文件: 利用上面的信息,

    2024年01月23日
    浏览(23)
  • vagrant和vitrulBox创建虚拟机后使用xshell连接

    1. 先在cmd使用vagrant ssh连接主机, 修改系统配置,允许密码登录 PasswordAuthentication no   将这行的no改成yes 2. 重启ssh 3.打开ssh,输入主机ip 端口22 账号root 密码默认为 vagrant  

    2024年02月16日
    浏览(32)
  • Elasticsearch:带有自查询检索器的聊天机器人示例

    本工作簿演示了 Elasticsearch 的自查询检索器 (self-query retriever) 将问题转换为结构化查询并将结构化查询应用于 Elasticsearch 索引的示例。 在开始之前,我们首先使用 langchain 将文档分割成块,然后使用 ElasticsearchStore.from_documents 创建一个向量存储并将数据索引到 elasticsearch。 然

    2024年02月03日
    浏览(25)
  • k8s集群部署elasticsearch集群和elasticsearch集群设置用户密码

    目录 一、背景: 二、部署elasticsearch集群: 1、部署elasticsearch集群: 2、验证elasticsearch集群是否正常:  三、部署elasticsearch集群并设置用户密码 1、生产elastic集群所需的证书: 2、重新建构elasticsearch镜像: 3、部署elasticsearch集群: 4、设置elasticsearch集群的密码: 5、测试验证

    2024年04月13日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包