Bug 1753120
| Summary: | [osp-autoscaler] Race condition when new node comes, scheduler bind pending pods before static pods with requests resources sync to kube-apiserver | ||||||
|---|---|---|---|---|---|---|---|
| Product: | OpenShift Container Platform | Reporter: | sunzhaohua <zhsun> | ||||
| Component: | Node | Assignee: | Joel Smith <joelsmith> | ||||
| Status: | CLOSED ERRATA | QA Contact: | Cameron Meadors <cmeadors> | ||||
| Severity: | high | Docs Contact: | |||||
| Priority: | high | ||||||
| Version: | 4.2.0 | CC: | agarcial, aos-bugs, cmeadors, gblomqui, jchaloup, jhou, joelsmith, jokerman, mfedosin, rphillips, wjiang | ||||
| Target Milestone: | --- | ||||||
| Target Release: | 4.6.0 | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2020-10-27 15:54:19 UTC | Type: | Bug | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
|
Description
sunzhaohua
2019-09-18 07:10:43 UTC
This issue happens after applied the workaround which mentioned in https://bugzilla.redhat.com/show_bug.cgi?id=1753067#c3 can you share autoscaler logs? Created attachment 1616672 [details]
autoscaler log
Does every node require all three (coredns, keepalived and mdns-publisher) static pods? @ Joel Smith, I think you are right, static pods' mirror pods are created when the scheduler may have already scheduled other workloads that result in the workload pod are in OutOfmemory status, autoscaler is working as expected. Just cluster autoscaler only handles the pod in the pending state, but the added workload is always outofmemory. I would be curious if the following patch helps this issue [1]. This BZ was created at around the same time as [1] merged. 1. https://github.com/openshift/origin/pull/23812 I didn't manage to test the backport yet, but I'll try to do it next sprint. This appears to be fixed in 4.5, based upon my testing. Whether because of https://github.com/openshift/origin/pull/23812 or something else, the current behavior is that a static pod will preempt a pod that has been scheduled to a node if the node doesn't have enough resources for the static pod. I have tried a few scenarios for autoscaling. All include static pods on all worker nodes. I have not seen a pod in status OutOfMemory. They are correctly in Pending when they trigger a scaling event and eventually deploy to the new node. Testing on latest released (4.5.2). I would say this is verified, but I am seeing unexpected behavior with the autoscaler: multiple nodes get spun up when only one should be need to satisfy memory requests and removing the reproducer deployment doesn't scale back down completely. I am double checking my math and what the expected behavior of autoscaler in latest code. I am going to stand by my statement that this has been verified as fixed. All other issues are unrelated and I can track them down separately. I am a little concerned that it is not clear what actually fixed it, but it is fixed. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (OpenShift Container Platform 4.6 GA Images), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2020:4196 |