envoy-xds-example-consul's People
envoy-xds-example-consul's Issues
transport: loopyWriter.run returning. connection error: desc = "transport is closing"
I got an issue with gRPC service. I'm using grpc-web on my client side Angular application.
I constantly receiving CORS error:
has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
and also sometimes I do receive the following message on the grpc server:
transport: loopyWriter.run returning. connection error: desc = "transport is closing"
and the logging shows that grpc request received but no response sent back to the client app
Here are my configs:
Consul LDS:
[{
"name": "listener_0",
"address": {
"socket_address": {
"address": "0.0.0.0",
"port_value": 8080
}
},
"filter_chains": [{
"filters": [{
"name": "envoy.http_connection_manager",
"config": {
"codec_type": "auto",
"stat_prefix": "ingress_http",
"route_config": {
"name": "local_route",
"virtual_hosts": [{
"name": "local_service",
"domains": [
"*"
],
"routes": [{
"match": {
"prefix": "/App.Grpc.MyApp1"
},
"route": {
"cluster": "main_service",
"max_grpc_timeout": "0s"
}
}],
"cors": {
"allow_origin": [
"*"
],
"allow_methods": "GET, PUT, DELETE, POST, OPTIONS",
"allow_headers": "keep-alive, user-agent, cache-control, content-type, content-transfer-encoding, Authorization, x-ip, x-accept-content-transfer-encoding, x-accept-response-streaming, x-user-agent, x-grpc-web, grpc-timeout",
"max_age": "1728000",
"expose_headers": "grpc-status, grpc-message",
"enable": true
}
}]
},
"http_filters": [{
"name": "envoy.cors"
},
{
"name": "envoy.grpc_web"
},
{
"name": "envoy.router"
}
]
}
}]
}]
}]
Consul CDS:
[{
"name": "MyApp1",
"connect_timeout": "0.25s",
"type": "logical_dns",
"lb_policy": "round_robin",
"http2_protocol_options": {},
"hosts": [{
"socket_address": {
"address": "host.docker.internal", # also tried docker service name my_app
"port_value": 50053
}
}]
}]
When I'm running envoy and go service without Pilot, everything works fine with exactly same configs, trying to figure out how to update envoy dynamically. Any help would be appreciated!
Receiving this error on every start
xds-server_1 | panic: Unexpected response code: 500
xds-server_1 |
xds-server_1 | goroutine 1 [running]:
xds-server_1 | Envoy-Pilot/cmd/server/storage.(*ConsulWrapper).checkAndSetUniqId(0xc42006ff48, 0x0, 0x0, 0x0, 0x0)
xds-server_1 | /go/src/Envoy-Pilot/cmd/server/storage/consul.go:75 +0x3bc
xds-server_1 | Envoy-Pilot/cmd/server/storage.(*ConsulWrapper).GetUniqId(0xc42006ff48, 0xc4200a4140)
xds-server_1 | /go/src/Envoy-Pilot/cmd/server/storage/consul.go:54 +0x8a
xds-server_1 | main.consulHealthCheck()
xds-server_1 | /go/src/Envoy-Pilot/cmd/server/main.go:41 +0x39
xds-server_1 | main.init.0()
xds-server_1 | /go/src/Envoy-Pilot/cmd/server/main.go:34 +0x4e
README
Hello! Thanks for sharing the code, really useful for my current project, I've been looking for this solution of updating envoy configs dynamically everywhere. Thanks!
It's just I have a few questions regarding the implementation. Is this what you currently you or used on production for your projects? Are there any drawbacks ?
And also I don't really understand "who" should update those configs if lets say I scale my service in docker swarm for two replicas, how to update configs ?
xDS-Example-Consul (v2 to v3, CDS LDS EDS use)
In the Envoy-xDS-Example-Consul, the docker compose file relies on EnvoyPilot Server(after taking a quick glance on the EnvoyPilot code it seems to work with go-control-plane v2).
Any suggestion on how to migrate from v2 to v3 In order to make use of v3 envoy filters?
How the CDS, LDS, EDS configurations on Consul are fetched to EnvoyPilot, and then to envoy proxy?
Thanks,
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.