{"id":"IL-0403","org":"Binder Project","date":"2022-06-02","docs":["https://stackoverflow.com/questions/58716138/","https://stackoverflow.com/a/61656760/1927102","https://github.com/jupyterhub/mybinder.org-deploy/issues/611"],"title":{"en":"mybinder.org could not create pods for hours as the GKE gke-resource-quotas quota wrongly reported 15k pods in use","ko":"mybinder.org 의 prod hub 가 실제로는 넘지 않은 파드 quota 를 넘었다는 오류 때문에 새 파드를 만들지 못했다"},"domain":["kubernetes","gcp"],"impact":{"scope":"The mybinder.org prod hub could not create any new pods, so no Binder sessions launched","users":"unknown","region":"unknown"},"review":{"written_by":"session","reviewed_at":null,"reviewed_by":null},"lessons":{"en":"It took 11 hours to realise there was a major outage. Once the right object was known, deleting it fixed the problem quickly, and the team was lucky that someone with the skills and permissions to make the change was at their computer at 11pm their time.","ko":"Binder 에 큰 장애가 났다는 것을 알아채기까지 11시간이 걸렸다. resource quota 객체를 지우자 시스템이 아주 빨리 바로잡혔고, 지울 객체를 알고 나면 고치는 일은 비교적 간단했다. 변경할 기술과 권한을 가진 팀원이 현지 시각 밤 11시에 마침 컴퓨터 앞에 있었던 것은 운이었다."},"related":[],"sources":[{"url":"https://github.com/jupyterhub/mybinder.org-deploy/blob/main/docs/source/incident-reports/2022-06-02-pod-limit.md","kind":"github","archived":null}],"summary":{"en":"A bug in the `gke-resource-quotas` ResourceQuota object that GKE manages made every new pod for the `prod` hub of mybinder.org fail with an exceeded pod quota error, although the hub had certainly not exceeded it. Launches stopped at 10:00 CET on 2 June 2022. The team learned of the outage from a user report in the Matrix channel at 21:00, found the quota error in the logs at 21:06, and at 21:22 found StackOverflow answers saying the object was buggy and that deleting it causes the object to be recreated and work correctly again. At 21:24 the team deleted `gke-resource-quotas`, pods could be created immediately, and the launch success rate went back to 100% quickly. The report also says the effect lasted about nine hours before normal operation returned without intervention.","ko":"GKE 의 resource quota 버그 때문에 mybinder.org 의 prod hub 가 새 파드를 만들지 못했다. ResourceQuota gke-resource-quotas 는 실제로는 넘지 않은 파드 quota 를 넘었다고 판단했다. 2022년 6월 2일 10:00 CET 부터 mybinder.org 는 새 파드를 하나도 띄우지 못했고, 팀은 21:00 에 사용자가 Matrix 채널에 알리고 나서야 알았다. 21:06 에 로그에서 오류를 찾았다. 21:22 에는 StackOverflow 글 두 개에서, 이것이 gke-resource-quotas 객체의 버그이며 이 객체를 지우면 다시 만들어지면서 정상으로 동작한다는 내용을 찾았다. 21:24 에 gke-resource-quotas 를 지우자 곧바로 파드를 다시 만들 수 있었고, launch 성공률이 금방 100%로 돌아왔다. 보고서 요약은 영향이 약 9시간 이어졌다고 적었다. 타임라인에 따르면 영향은 10:00 부터 21:24 까지였다."},"trigger":null,"severity":"unknown","symptoms":["deploys-failing","service-unavailable"],"timeline":{"detected_after":"11h","resolved_after":"11h 24m"},"date_kind":"incident","detection":{"en":"A user reported a Binder outage in the Matrix channel at 21:00, and a team member who saw it found that pods had not been launching for several hours.","ko":"21:00 에 사용자가 Matrix 채널에 Binder 장애를 알렸고, 팀은 이 채널에서 소식을 받았다. 이를 본 팀원이 확인해 보니 몇 시간째 파드가 뜨지 않고 있었다. 큰 장애를 알아채기까지 11시간이 걸렸다."},"components":["gke-control-plane"],"root_cause":"software-bug","remediation":[{"text":{"en":"Deleted the gke-resource-quotas ResourceQuota, after which pods could be created again","ko":"21:24 에 gke-resource-quotas 를 지웠고, 곧바로 배포가 파드를 다시 만들 수 있게 돼 launch 성공률이 금방 100%로 돌아왔다."}}],"action_items":[{"text":{"en":"Address uptime monitoring and alerting","ko":"가동 시간 감시와 알림 문제를 이슈 https://github.com/jupyterhub/mybinder.org-deploy/issues/611 에서 다룬다."}}],"contributing":["monitoring-blind-spot"],"recurrence_of":null,"symptoms_text":{"en":"On 2 June 2022 from 10:00 CET, mybinder.org stopped launching any new pods, and nobody on the team noticed until a user reported a Binder outage in the Matrix channel at 21:00.\n\nThe logs showed pod creation refused with a pod quota error: `HTTP response body: {\"kind\":\"Status\",\"apiVersion\":\"v1\",\"metadata\":{},\"status\":\"Failure\",\"message\":\"pods \\\"jupyter-<user>-2dpythonmoocproblems-2drkut24bk\\\" is forbidden: exceeded quota: gke-resource-quotas, requested: pods=1, used: pods=15k, limited: pods=15k\",\"reason\":\"Forbidden\",\"details\":{\"name\":\"jupyter-<user>-2dpythonmoocproblems-2drkut24bk\",\"kind\":\"pods\"},\"code\":403}`. The key part was `exceeded quota: gke-resource-quotas, requested: pods=1, used: pods=15k, limited: pods=15k`, which made no sense because the team was certainly not using 15k pods.","ko":"2022년 6월 2일 10:00 CET 부터 mybinder.org 가 새 파드를 하나도 띄우지 못했다. 21:00 에 사용자가 Matrix 채널에 Binder 장애를 알렸고, 팀원이 살펴보니 몇 시간째 파드가 뜨지 않고 있었다.\n\n21:06 에 로그에서 파드 quota 한도에 걸렸다는 오류를 찾았다. 응답 본문은 pods \"jupyter-<user>-2dpythonmoocproblems-2drkut24bk\" is forbidden: exceeded quota: gke-resource-quotas, requested: pods=1, used: pods=15k, limited: pods=15k 였고 reason 은 Forbidden, code 는 403 이었다.\n\n팀은 실제로 파드 15k 개를 쓰고 있지 않았으므로 이 오류를 이해할 수 없었다."},"updated_at":"2026-11-14T12:34:05.427119Z","url":"https://benchlet.com/incidentlib/app/cases/IL-0403","org_slug":"binder-project"}