2

Est-il possible de déployer Elasticsearch sur l'environnement flexible d'un moteur d'application à l'aide d'une image docker?Déploiement d'Elasticsearch sur google app engine flex

J'ai essayé ce qui suit Mes fichiers sur la machine locale

Dossier: ElasticSearch

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

Contenu de app.yaml

runtime: custom 
env: flex 

Dockerfile et docker-entrypoint.sh copié de https://github.com/GoogleCloudPlatform/elasticsearch-docker/tree/master/5/5.2.0

Modifications au Dockerfile

replaced EXPOSE 9200 9300 to EXPOSE 8080 

Modification au 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 

je construis un conteneur en utilisant le fichier docker sur ma machine locale

docker build -t elasticdemo . 

Ensuite, je lance le conteneur

docker run -p 8080:8080 elasticdemo 

Je suis en mesure d'accéder ElasticSearch sur 0.0.0.0:8080

Problème:

Je suis en train de déployer ElasticSearch comme une application au moteur Google app environnement flex

gcloud application Déployez app.yaml - -version elasticdocker --project myproject

le déploiement échoue avec l'erreur suivante

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

J'étais attendre ed elasticsearch à déployer en tant qu'application et être disponible sur l'URL déployée. Pourriez-vous s'il vous plaît fournir des pointeurs/aide/suggestions avec cette approche?

Répondre

0

Même si vous pouvez déployer ES dans l'environnement flexible d'App Engine, ce n'est pas particulièrement utile. Les machines virtuelles hébergeant les conteneurs GAE Flexible sont redémarrées régulièrement dans le cadre de la maintenance et toute donnée stockée sur le disque local sera perdue au redémarrage. Si vous souhaitez utiliser le disque local pour le stockage à long terme, je vous suggère de déployer la machine virtuelle de GCE (ou utiliser une solution du GCP Marketplace) ou se déployer à GKE qui supports persistent disks

Quant à la question réelle: vous don probablement N'ayez pas de gestionnaire de contrôle d'intégrité. Par conséquent, l'environnement App Engine Flexible ne considère pas votre application comme saine après son déploiement. Le message d'erreur est inutile, je suis d'accord.

De la GAE docs flexible pour building custom images:

"Un bilan de santé est une requête HTTP à l'URL/_ah/santé Une application saine doit répondre avec le code d'état 200.".

Vous pouvez également désactiver les vérifications de l'état de santé en les ajoutant à l'application.YAML enable_health_check: False