通过站点地址与 GCP VM 实例交互
Interacting with a GCP VM instance through site address
我在尝试访问和管理 GCP 中的虚拟机实例时遇到问题。
基本上,大约两年前我创建了一个项目,需要elasticsearch。我通过 google 云平台实现了这个模块,使用的是:“Elasticsearch Certified by Bitnami”。
通过访问站点地址,并使用 GCP 提供的凭据,我能够通过直接使用带有站点地址的插件来完成我需要的一切(使用 POST、PUT 和 GET 命令link http://35.xxx.xx.xxx//elasticsearch/...).
这非常有效,但是,我暂时停止了该网站上的功能,现在我需要再次使用它,按照相同的步骤进行操作不起作用,因为 GCP 不再提供网站地址像以前一样访问 VM 或与之交互。
我认为这与 Bitnami 直接相关,但他们的支持网站上也有类似的问题
他们的一位工程师的回答似乎指向 google 作为此更改的来源:https://community.bitnami.com/t/no-more-site-address-gcp-wordpress/52133(在我的例子中是一个 elasticsearch 实例而不是 wordpress 实例)。
保留一个静态ip插入到之前的link格式也没有用。 (http://external-IP//elasticsearch/...)
所以我的问题是:现在是否有一种方法可以像以前那样与 VM 进行交互?如果是这样,我该怎么做,我应该使用什么地址?如果不可能,我如何与 VM 实例交互以分配映射并直接发送查询?
(如有必要,我发现有人做了与我之前所做的类似的实现,因此您可以了解我在寻找什么:https://www.youtube.com/watch?v=Wv2EoMQ-5vQ)
感谢您的宝贵时间。
您无法访问 Elasticsearch 实例可能有多种原因。
- 验证 Elasticsearch 是否 运行
sudo /opt/bitnami/ctlscript.sh status
- GCP Firewall 设置 - 默认情况下 API 在 9200 上工作,所以确保它是打开的(你的端口可能不同,但我在这个例子中使用了默认端口):
$ gcloud compute firewall-rules list | grep 9200
elasticsearch default INGRESS 1000 tcp:22,tcp:9200,tcp:9300,tcp:9600 False
- VM 的防火墙设置 - 检查
sudo iptables -L
并验证是否没有规则阻止 elasticsearch 端口。
此外,如果您的 Elasticsearch 最近更新过,配置可能已更改(但目前只是猜测)并且可能是原因。
但是 - 如果您的实例一切正常,您应该可以通过键入 http://my_vm_external_ip:9200
访问它,并且您应该得到一个 API 响应:
"name" : "elasticsearch-1-vm",
"cluster_name" : "bnCluster",
"cluster_uuid" : "0q4a-ouNQ0OechAIXz1S0g",
"version" : {
"number" : "7.8.0",
"build_flavor" : "oss",
"build_type" : "tar",
"build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
"build_date" : "2020-06-14T19:35:50.234439Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
为了确保这是一个可行的解决方案,我刚刚部署了 "Elasticsearch by Bitnami" from marketplace. 然后我创建了一个防火墙规则:
gcloud compute --project=my_project firewall-rules create elasticsearch --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:22,tcp:9200,tcp:9300,tcp:9600 --source-ranges=0.0.0.0/0 --target-tags=elasticsearch-1-deployment
我使用了部署为 VM 创建的 --target-tags=elasticsearch-1-deployment
标签 运行 Elasticsearch - 您可以使用不同的标签或根本不使用标签 - 这只是一个例子。
本文档也可能对您有所帮助https://docs.bitnami.com/google/faq/administration/use-firewall/
我在尝试访问和管理 GCP 中的虚拟机实例时遇到问题。
基本上,大约两年前我创建了一个项目,需要elasticsearch。我通过 google 云平台实现了这个模块,使用的是:“Elasticsearch Certified by Bitnami”。
通过访问站点地址,并使用 GCP 提供的凭据,我能够通过直接使用带有站点地址的插件来完成我需要的一切(使用 POST、PUT 和 GET 命令link http://35.xxx.xx.xxx//elasticsearch/...).
这非常有效,但是,我暂时停止了该网站上的功能,现在我需要再次使用它,按照相同的步骤进行操作不起作用,因为 GCP 不再提供网站地址像以前一样访问 VM 或与之交互。
我认为这与 Bitnami 直接相关,但他们的支持网站上也有类似的问题 他们的一位工程师的回答似乎指向 google 作为此更改的来源:https://community.bitnami.com/t/no-more-site-address-gcp-wordpress/52133(在我的例子中是一个 elasticsearch 实例而不是 wordpress 实例)。
保留一个静态ip插入到之前的link格式也没有用。 (http://external-IP//elasticsearch/...)
所以我的问题是:现在是否有一种方法可以像以前那样与 VM 进行交互?如果是这样,我该怎么做,我应该使用什么地址?如果不可能,我如何与 VM 实例交互以分配映射并直接发送查询?
(如有必要,我发现有人做了与我之前所做的类似的实现,因此您可以了解我在寻找什么:https://www.youtube.com/watch?v=Wv2EoMQ-5vQ)
感谢您的宝贵时间。
您无法访问 Elasticsearch 实例可能有多种原因。
- 验证 Elasticsearch 是否 运行
sudo /opt/bitnami/ctlscript.sh status
- GCP Firewall 设置 - 默认情况下 API 在 9200 上工作,所以确保它是打开的(你的端口可能不同,但我在这个例子中使用了默认端口):
$ gcloud compute firewall-rules list | grep 9200
elasticsearch default INGRESS 1000 tcp:22,tcp:9200,tcp:9300,tcp:9600 False
- VM 的防火墙设置 - 检查
sudo iptables -L
并验证是否没有规则阻止 elasticsearch 端口。
此外,如果您的 Elasticsearch 最近更新过,配置可能已更改(但目前只是猜测)并且可能是原因。
但是 - 如果您的实例一切正常,您应该可以通过键入 http://my_vm_external_ip:9200
访问它,并且您应该得到一个 API 响应:
"name" : "elasticsearch-1-vm",
"cluster_name" : "bnCluster",
"cluster_uuid" : "0q4a-ouNQ0OechAIXz1S0g",
"version" : {
"number" : "7.8.0",
"build_flavor" : "oss",
"build_type" : "tar",
"build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
"build_date" : "2020-06-14T19:35:50.234439Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
为了确保这是一个可行的解决方案,我刚刚部署了 "Elasticsearch by Bitnami" from marketplace. 然后我创建了一个防火墙规则:
gcloud compute --project=my_project firewall-rules create elasticsearch --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:22,tcp:9200,tcp:9300,tcp:9600 --source-ranges=0.0.0.0/0 --target-tags=elasticsearch-1-deployment
我使用了部署为 VM 创建的 --target-tags=elasticsearch-1-deployment
标签 运行 Elasticsearch - 您可以使用不同的标签或根本不使用标签 - 这只是一个例子。
本文档也可能对您有所帮助https://docs.bitnami.com/google/faq/administration/use-firewall/