-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
external-dns calls aws api "ListResourceRecordSets" too frequently #905
Comments
Same thing. v0.5.11 |
I am experiencing a similar problem. Cloudtrail shows a high volume of external-DNS upserts. This is causing "rate exceeded" messages when I use other tools like Terraform. I am running 8 kubernetes clusters within the same AWS account. Each cluster is running a separate instance of external-dns and is updating a private zone and a public zone. |
As long as you don't use other ProviderSpecific than see: https://github.com/kubernetes-incubator/external-dns/blob/master/plan/plan.go#L188 We introduced a bug in One thing you could try out is to test if v0.5.9 has the same problems. |
Not seeing any issues with v0.5.9, but had problems with v0.5.11 and v0.5.10. Running with: |
Duplicate issue: #891 |
So I don't believe this is a duplicate issue but more an issue of how the code is currently structured and the interaction between Controller and Registry. I am ignoring the cache because in the worst case it won't matter. The Controller calls Registry.Records() calls the provider.Records(). So if we count thus far, we have made z (# of zone pages) + r (# of resourcerecord pages) calls. Eventually the Controller will call Registry.ApplyChanges() which calls provider.ApplyChanges() For newChanges(), we have z + r + z calls. For a single pass, Records + ApplyChanges, we have (z + r ) + 3 *(2z+r) + z = 8z + 4r Just to prove I wasn't crazy, I ran the simple TestAWSApplyChanges, and saw 4 zone calls ,and 3 records calls. Its not the worst case but it's not good. The ideal would be to do 1 call for both zones and resources. With minimal effort it should be possible to do 1 zone and 1 resource call just within ApplyChanges. |
@fraenkel - good write-up. Yes, refactoring some of the duplicate calls would help greatly. I solved my issue by setting zoneIdFilters within the helm values. External-dns was spending a lot of work evaluating other suddomain zones only to determine they weren't authoritative for the record it was manipulating. The problem was compounded because I have 8 clusters running in the same AWS account with their own external-dns controller. If external-dns were more efficient about evaluating the zones I wouldn't need to do this. |
I will put together a PR which I believe can reduce this to the bare minimum. Shouldn't take long. |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
I think this can be closed? |
I am seeing rate throttling errors as well. It'd be nice if it retried in a delayed backoff loop to work around |
@njuettner I had this issue so I tested out v0.5.9 and it instantly worked. I don't think the bug you mentioned was fixed. |
Stale issues rot after 30d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Rotten issues close after 30d of inactivity. Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
@fejta-bot: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/reopen |
@helgi: You can't reopen an issue/PR unless you authored it or you are a collaborator. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
This fix in the latest release resolved this issue for us. |
I am piloting AWS EKS with external-DNS. There is 1 private hosted zone with around 700 pre-existing records.
The function works OK. However, from cloudtrail, I can see external-dns calls "ListHostedZones" once every minute which I can understand, but it also issues 8 or 9 "ListResourceRecordSets" every minute.
Is it as expected? This frequency for API calling is too much for me. Is it possible to increase the time interval?
The text was updated successfully, but these errors were encountered: