salrashid123 / envoy_discovery Goto Github PK
View Code? Open in Web Editor NEWEnvoy Discovery service 'hello world'
License: Apache License 2.0
Envoy Discovery service 'hello world'
License: Apache License 2.0
Hi, Just want to say this repo is really helpful for me to get started. And regarding the healthcheck issue you saw in blog, I think you can set drain_connections_on_host_removal
to true and it should resolve.
Thank you for making the envoy_discovery project open source! I stumbled upon it while I was trying to get my own EDS server to work and it was hugely helpful!
Great tutorial. I followed it to get my feet wet.
I'm on a MacOS, it took me forever to get the envoy binary to compile for me, but it works.
Unfortunately on the very last step to actually connect to the server via Envoy, I get this error:
$ curl -v https://localhost:10000/
* Trying ::1...
* TCP_NODELAY set
* Connection failed
* connect to ::1 port 10000 failed: Connection refused
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 10000 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: /etc/ssl/cert.pem
CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* error:1400410B:SSL routines:CONNECT_CR_SRVR_HELLO:wrong version number
* stopped the pause stream!
* Closing connection 0
curl: (35) error:1400410B:SSL routines:CONNECT_CR_SRVR_HELLO:wrong version number
And in the Envoy logs, I see this:
[2019-08-16 11:20:12.618][3089031][debug][http] [source/common/http/conn_manager_impl.cc:262] [C98] dispatch error: http/1.1 protocol error: HPE_INVALID_METHOD
[2019-08-16 11:20:12.618][3089031][debug][connection] [source/common/network/connection_impl.cc:101] [C98] closing data_to_write=66 type=2
[2019-08-16 11:20:12.618][3089031][debug][connection] [source/common/network/connection_impl.cc:653] [C98] setting delayed close timer with timeout 1000 ms
[2019-08-16 11:20:12.618][3089031][debug][connection] [source/common/network/connection_impl.cc:582] [C98] write flush complete
[2019-08-16 11:20:12.618][3089031][debug][connection] [source/common/network/connection_impl.cc:582] [C98] write flush complete
[2019-08-16 11:20:12.619][3089031][debug][connection] [source/common/network/connection_impl.cc:582] [C98] write flush complete
[2019-08-16 11:20:12.619][3089031][debug][connection] [source/common/network/connection_impl.cc:582] [C98] write flush complete
[2019-08-16 11:20:13.622][3089031][debug][connection] [source/common/network/connection_impl.cc:642] [C98] triggered delayed close
[2019-08-16 11:20:13.622][3089031][debug][connection] [source/common/network/connection_impl.cc:190] [C98] closing socket: 1
[2019-08-16 11:20:13.622][3089031][debug][main] [source/server/connection_handler_impl.cc:80] [C98] adding to cleanup list
[2019-08-16 11:20:15.416][3088050][debug][main] [source/server/server.cc:169] flushing stats
[2019-08-16 11:20:17.913][3088050][debug][config] [source/common/config/http_subscription_impl.cc:63] Sending REST request for /v2/discovery:endpoints
[2019-08-16 11:20:17.914][3088050][debug][router] [source/common/router/router.cc:402] [C0][S12935836404404671183] cluster 'eds_cluster' match for URL '/v2/discovery:endpoints'
[2019-08-16 11:20:17.914][3088050][debug][router] [source/common/router/router.cc:515] [C0][S12935836404404671183] router decoding headers:
':method', 'POST'
':path', '/v2/discovery:endpoints'
':authority', 'eds_cluster'
':scheme', 'http'
'content-type', 'application/json'
'content-length', '190'
'x-envoy-internal', 'true'
'x-forwarded-for', '192.168.85.123'
'x-envoy-expected-rq-timeout-ms', '1000'
I'm using Envoy 1.11.1
I see that in the eds_server a route called "/edsservice" is defined:
https://github.com/salrashid123/envoy_discovery/blob/master/eds_server/main.py#L145
But how does envoy know to query that endpoint for "myservice"?
I don't see "edsservice" reference anywhere (neither in the source code of envoy, nor in this repo).
EDS Server is not informing Envoy about the endpoints being discovered.
Tested both locally and on GKE clusters.
Can you please take a look and make necessary changes?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.