在 Google Cloud Platform (GCP) Compute Engine 上部署 Meilisearch 实例
使用我们的 GCP 自定义镜像,只需几分钟即可在 GCP 上部署 Meilisearch。
以下指南将逐步引导您在 GCP Compute Engine 实例中部署 Meilisearch。 如果您在使用我们的 GCP 镜像时遇到任何问题,请在 此存储库 中创建一个 issue。
第一部分:部署 Meilisearch 实例
1. 在您的 GCP 帐户中导入 Meilisearch 自定义镜像
- 导航至“Compute Engine” -> “镜像”
- 单击“[+] 创建镜像”
-
为其命名 (
meilisearch-example
) -
在“来源”字段中选择“虚拟磁盘 (VMDK, VHD)”
-
如果提示您启用 Cloud Build 工具并授予权限,请执行此操作
-
将以下 URI 复制到“Cloud Storage 文件”字段中
meilisearch-image/meilisearch-v1.0.2-debian-10.vmdk
-
其他字段不是必需的
-
单击“创建”。 您可能需要等待最多 6 分钟,直到 Meilisearch 自定义镜像导入到您的帐户
2. 从导入的镜像创建新的 GCP Compute Engine 实例
- 打开“镜像”选项卡,单击您刚刚导入的镜像的名称,然后单击“[+] 创建实例”按钮
-
为您的实例命名
-
在“机器配置”部分,请务必根据您的需求选择具有足够内存来运行 Meilisearch 的“机器类型”。 内存越多意味着搜索速度越快
-
在“启动磁盘”部分,单击“更改”按钮
-
在“自定义镜像”选项卡中,从下拉菜单中选择您在之前的步骤中刚刚导入的镜像 (meilisearch-vX-X-X)。 不要忘记将磁盘的“大小”设置为与您的需求相对应的量。 完成后,单击“选择”
-
在“防火墙”部分,请务必选中“允许 HTTP 流量”和“允许 HTTPS 流量”框,以便您的 Meilisearch 实例可以与互联网通信
-
最后,单击“创建”按钮。 一两分钟后,您的 Meilisearch 实例应该已启动并正在运行
您可以通过将 GCP 提供的“外部 IP”地址复制粘贴到浏览器中,或者在终端上键入以下命令来检查您的实例是否正在正确运行
curl http://<your-external-ip>/health
服务器应使用 200 OK
状态代码进行响应,如下例所示
{"status": "available"}
第二部分:将您的实例设置为生产环境
在生产环境中配置 Meilisearch 实例不仅直接,而且完全自动化。 与您的实例建立 SSH 连接,一个脚本将指导您完成整个过程。
1. 使您的域名指向您的实例 IP
如果您想使用自定义域名(或子域名),请在您的域名提供商帐户中添加 A 记录
。 否则,您可以跳过此步骤。
您的域名现在应该链接到您的 Meilisearch 实例。 运行健康检查以验证您的实例是否正在运行以及您的 DNS 配置是否正确
curl -v http://<your-domain-name>/health
服务器应使用 200 OK
状态代码进行响应,如下例所示
...
< HTTP/1.1 200 OK
...
2. 设置 API 密钥和 SSL (HTTPS)
Meilisearch 目前在开发环境中运行。 您尚未设置 API 密钥,这意味着任何人都可以从您的 Meilisearch 中读取/写入,并且您尚未在使用 HTTPS,这使得此配置对于生产而言不安全。
要开始配置过程,请通过 SSH 连接到您的新 Meilisearch 实例,并按照出现的说明进行操作。
2.2. 运行配置脚本
2.2.1 选项 1:使用 Google Cloud Console
导航至“Compute Engine” -> “VM 实例”。 单击您的实例的名称,然后单击“SSH”按钮(请务必启用弹出窗口,否则窗口可能会被阻止)。 连接将建立,脚本将自动运行。
2.2.2 选项 2:将您的 SSH 密钥添加到 Compute Engine 元数据
-
确保您拥有 SSH 公钥(通常存储在
~/.ssh/id_rsa.pub
中)。 如果您尚未创建 SSH 密钥或想要生成新的密钥,您可以按照本指南 -
在 GCP 仪表板上,导航至“Compute Engine” -> “元数据”,然后单击“SSH 密钥”选项卡。 单击“编辑”
-
要添加新的 SSH 密钥,请单击“+ 添加项”。 复制您的公钥并将其粘贴到 GCP 界面上创建的新框中。 通常,您可以通过在终端上运行以下命令来读取您的公钥
cat ~/.ssh/id_rsa.pub
- 单击“保存”
现在,使用与您的 SSH 密钥上的用户名相同的用户名建立 SSH 连接。如果您要添加本地系统密钥,则它可能就是您在本地系统上的用户名。要在类 UNIX 系统中知道此用户名,请运行命令
whoami
然后使用以下命令建立连接
ssh <your-username>@<your-external-ip-or-domain-name>
您应该会看到类似这样的内容
________________________________________________
________________________________________________
_ _ _ __ _
/\/\ ___(_) (_) _\ ___ __ _ _ __ ___| |__
/ \ / _ \ | | \ \ / _ \/ _` | '__/ __| '_ \
/ /\/\ \ __/ | | |\ \ __/ (_| | | | (__| | | |
\/ \/\___|_|_|_\__/\___|\__,_|_| \___|_| |_|
________________________________________________
________________________________________________
如果您是首次通过 SSH 访问实例,则会自动运行一个脚本,要求您提供设置和所需的配置。如果您想随时再次运行此脚本,可以使用以下命令
meilisearch-setup
3. 享受您即用型的 Meilisearch 实例
您的 Meilisearch 实例已在 GCP 上启动并运行,可以用于生产环境。
为了确保一切运行顺利,请最后调用一次 /health
路由的 HTTP 请求
curl -v https://<your-domain-name>/health
请注意,这次我们使用的是 HTTPS。
服务器应使用 200 OK
状态代码进行响应,如下例所示
...
< HTTP/1.1 200 OK
...
您已准备好在 GCP 上使用 Meilisearch 进行生产!如果您在使用我们的 GCP 镜像时遇到任何问题,请在此存储库中创建一个 issue。