google-app-engine - google app engine flex 上的 Elasticsearch 部署

标签 google-app-engine elasticsearch docker gcloud app-engine-flexible

是否可以使用 docker 镜像在 App engine flex 环境中部署 Elasticsearch。

我试过以下 我在本地机器上的文件

文件夹: Elasticsearch

app.yaml
Dockerfile
docker-entrypoint.sh
config folder(containing elasticsearch.yml)file

app.yaml 的内容

runtime: custom 
env: flex

https://github.com/GoogleCloudPlatform/elasticsearch-docker/tree/master/5/5.2.0 复制的 Dockerfile 和 docker-entrypoint.sh

对 Dockerfile 的修改

replaced EXPOSE 9200 9300 to EXPOSE 8080

修改elasticsearch.yml

cluster.name: "beaconinside-docker-cluster"
path.data: /usr/share/elasticsearch/data
http.host: 0.0.0.0
http.port: 8080
discovery.zen.minimum_master_nodes: 1

我在本地机器上使用 docker 文件构建了一个容器

docker build -t elasticdemo .

然后,我运行容器

docker run -p 8080:8080 elasticdemo

我可以在 0.0.0.0:8080 上访问 elasticsearch

问题:

我正在尝试将 elasticsearch 作为应用程序部署到 Google 应用引擎 flex 环境

gcloud app deploy app.yaml --version elasticdocker --project myproject

部署失败,出现以下错误

Updating service [default]...failed.
ERROR: (gcloud.app.deploy) Error Response: [9]

我希望 elasticsearch 部署为应用程序并在部署的 url 上可用。 您能否就此方法提供指导/帮助/建议?

最佳答案

虽然您可以将 ES 部署到 App Engine 柔性环境,但它并不是特别有用。作为维护的一部分,托管 GAE Flexible 容器的 VM 会定期重启,并且本地磁盘上存储的任何数据都将在重启时丢失。如果您想使用本地磁盘进行长期存储,我建议部署 GCE VM(或者使用 GCP Marketplace 中的解决方案)或部署到 supports persistent disks 的 GKE

至于实际问题:您可能没有运行状况检查处理程序,因此 App Engine 柔性环境在部署后认为您的应用程序运行状况不佳。错误消息没有用,我同意。

来自 building custom images 的 GAE Flexible 文档:

“健康检查是对 URL/_ah/health 的 HTTP 请求。健康的应用程序应以状态代码 200 响应。”

或者,您可以通过添加到 app.yaml 来关闭健康检查 enable_health_check:错误

关于google-app-engine - google app engine flex 上的 Elasticsearch 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43913227/

相关文章:

eclipse - 在 Eclipse 中更改 AppEngine 控制台红色

python - 如何提供谷歌云存储图像?

elasticsearch - 为什么Elasticsearch集群在集群重启时无法识别 super 用户?

java - Elasticsearch 搜索 Java API

postgresql - 无法通过 postico 连接到 postgreSQL docker 容器

python - 在 ubuntu docker 镜像上连接时,SQL Server 的 ODBC 驱动程序 13 无法在 pyodbc 上打开 lib

python - 使用 Calendar v3 api python 插入事件时出现 HttpError 401 "Login Required"

java - Google App Engine 用户注册系统

amazon-web-services - AWS Elastic Search是否为未知的新键设置了架构/映射?

elasticsearch - 普罗米修斯 vs ElasticSearch。哪个更适合容器和服务器监控?