Giter VIP home page Giter VIP logo

Comments (5)

yskopets avatar yskopets commented on June 3, 2024

@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.

kyessenov avatar kyessenov commented on June 3, 2024

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.

yskopets avatar yskopets commented on June 3, 2024

Thank you!

from go-control-plane.

github-actions avatar github-actions commented on June 3, 2024

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.

github-actions avatar github-actions commented on June 3, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.