Comments (5)
@kyessenov Hi Kuat!
May I wonder why this issue hasn't got any attention since it was opened ? Isn't it a well-known issue that is sitting there to happen ?
For the context, I've recently described the issue I'm facing on #control-plane-dev Slack:
I’ve run into an issue where envoy
keeps updated cluster
in a warming
state for indefinite amount of time.
As far as I understand, such behaviour is explained in the Resource warming
section of the xDS Protocol
(https://www.envoyproxy.io/docs/envoy/latest/api-docs/xds_protocol#resource-warming):
Clusters and Listeners go through warming before they can serve requests. This process happens both during Envoy initialization and when the Cluster or Listener is updated. Warming of Cluster is completed only when a ClusterLoadAssignment response is supplied by management server. … Management server is expected to provide the EDS/RDS updates during warming. If management server does not provide EDS/RDS responses, Envoy will not initialize itself during the initialization phase and the updates sent via CDS/LDS will not take effect until EDS/RDS responses are supplied.
In my case, while Cluster
definition is updated, endpoints do not change. That’s why my go-control-plane
-based control plane doesn’t send a response to EDS
request.
Am I interpreting envoy
behaviour correctly ? Shouldn’t this case be handled by go-control-plane
?
from go-control-plane.
You should make sure the snapshot is consistent if you use ADS mode. That means every cluster has an endpoint assignment (there is a helper function Consistent()
to help with that).
Keep in mind, that most production xDS servers are only eventually consistent. That means they generally expect EDS server to catch up to CDS server and tolerate partially broken config in envoys (which can sometimes lead to 5xx/4xx). You can simulate that behavior in go-control-plane by not using ADS mode.
The entire sequencing is complex, so I simply didn't have time to do it right. It appears folks are fine with eventual consistency for now.
from go-control-plane.
Thank you!
from go-control-plane.
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or "no stalebot" or other activity occurs. Thank you for your contributions.
from go-control-plane.
This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as "help wanted" or "no stalebot". Thank you for your contributions.
from go-control-plane.
Related Issues (20)
- Add stdout access logging to wellknown package HOT 5
- Scaling matcher rules in a listener HOT 2
- Requesting support for alt-port in healthcheck HOT 1
- How to find the corresponding relationship between the plane and the supported Envoy versions HOT 3
- Improper use of chan leads to panic HOT 4
- For a given envoy commit, how to find the corresponding go control plane commit? HOT 6
- the resource order is not in line with the description in the xds doc HOT 1
- Go apis are currently being built by gcc
- Add MaxMind GeoIP Provider HOT 4
- Sync is now broken HOT 1
- Issue with Handling HttpConnectionManager as ConfigDiscovery HOT 3
- Expose vtprotobuf generation HOT 7
- Outlier detection event log HOT 1
- Add support for async_fetch in remote_jwks in Request Authentication HOT 1
- sotw server impossible to send the eds configuration. HOT 3
- Release schedule for this project? HOT 8
- Support new xds protocol behavior regarding wildcard HOT 2
- This instruction no longer works -> https://github.com/envoyproxy/go-control-plane/blob/main/internal/example/README.md HOT 1
- Deadlock in Delta XDS if number of resources is more than 10 HOT 10
- Excessive Memory Consumption in EnvoyProxy During Continuous snapshot updates for the same node 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 go-control-plane.