Comments (6)
It seems we might be missing the spirit of what a readiness probe means for Elasticsearch. An OpenShift readiness probe refers to the readiness of a particular pod to operate. It does not refer to the readiness of the global distributed service that pod is part of when running.
The readiness of an Elasticsearch pod should be to make sure the low-level services needed by the ES pod are in place: disk space is available (/elasticsearch/persistent/logging-es/...), sanity check of the configuration files are in place (/usr/share/elasticsearch/elasticsearch/config/elasticsearch.yml), etc.
from elasticsearch-cloud-kubernetes.
@jimmidyson Two questions related to this issue for which we have a PR
- Can we get a 2.4.4.x branch to which we merge a fix
- Do you have and aversion do using pod labels for service discovery?
@portante I agree we should pursue a better probe but in context of the referenced issue, it appears @wozniakjan PR would resolve our short term concerns
from elasticsearch-cloud-kubernetes.
I'm slightly surprised this hasn't been reported before by other users, of which there seem to be quite a few. Is this something we can consistently reproduce? I am aware we have no test suite to prove the problem and validate any fixes and I would be very grateful to anyone that provides that so we know this is really fixed.
Can we get a 2.4.4.x branch to which we merge a fix?
Can't you just use the existing 2.x branch?
Do you have and aversion do using pod labels for service discovery?
No aversion, but if elasticsearch isn't actually started, then discovering the pods like this rather than waiting them to be ready is more likely to hit race conditions on joining cluster, but if that can be mitigated then go for it.
from elasticsearch-cloud-kubernetes.
Is this something we can consistently reproduce?
yes, it looks like every time we try to deploy ES cluster larger than one with readiness probe waiting for the ES to respond 200. ES that has not yet successfully participated in master discovery responds 503, therefore the probe prevents it from participating in master discovery. Other solution could be based on identifying working ES pod differently than checking the 200 status code, we are currently not certain what would be better. More detailed description is in the mentioned bugzilla and PR.
Can we get a 2.4.4.x branch to which we merge a fix?
Can't you just use the existing 2.x branch?
my apologies, this confusion comes from me, I thought the tag 2.4.4 and branch 2.x differ, but since they are the same, we can use 2.x
from elasticsearch-cloud-kubernetes.
As discussed during the bug scrub meeting, more robust test cases will be provided by the QA. The only tests we did were:
- deploy logging stack with 2 ES nodes (later tried also 3 and 4 nodes)
- kill one of the ES pods to see if cluster recovers
The 1. step already fails for the current setup from the master branch where resides the implementation with the readiness probe. Attached are logs from discovery by service (as currently implemented) and discovery by label (proposed as possible workaround)
Both steps succeed with label discovery.
Attachment:
logs.zip
from elasticsearch-cloud-kubernetes.
After discussion with @jcantrill, I created a pull request #98
from elasticsearch-cloud-kubernetes.
Related Issues (20)
- Support for elasticsearch 5.5.1 HOT 3
- Is image in dockerhub fabric8/elasticsearch-k8s:5.4.2 correct? HOT 1
- Support for elasticsearch 5.6.1 HOT 5
- Support for 6.0.0-rc1 HOT 2
- Support for Elasticsearch 6.0 HOT 9
- Unable to build custom 5.x images in Openshift HOT 1
- Plugin for ES 2.4.6 HOT 1
- Maven java.io.FileNotFoundException for elasticsearch-cloud-kubernetes-6.1.2.zip HOT 7
- is this project abandoned ? can't find 6.1 resources HOT 17
- README confusion HOT 1
- elasticsearch-plugin install io.fabric8:elasticsearch-cloud-kubernetes:6.2.3 HOT 3
- Java permissions exception running plugin 6.2.3 HOT 16
- Maintain and release from 5.6.x branch while ES 5.6.x remains active HOT 1
- Release for 5.6.9 HOT 2
- Discovery by label on Elasticsearch 5.x HOT 5
- whatββs the plugin version for elasticsearch 2.2.0
- can not download
- Support Elasticseacth 6.4 compatibility HOT 1
- When is a upgrade to version 5.5.0 planned? HOT 2
- 5.5.0 not in maven repo HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from elasticsearch-cloud-kubernetes.