IL-0234 IONOS Cloud · 2026-05-08kubernetes
내부 배포 자동화가 개발용 애플리케이션을 고객의 Managed Kubernetes 클러스터들에 잘못 설치해 컨트롤 플레인 연결과 쿠버네티스 기능에 문제가 났다
2026-05-08 UTC+2 기준 15:22 에서 16:12 사이에, 새 Managed Kubernetes 개발 클러스터를 등록하는 정기 내부 작업 때문에 배포 자동화 시스템이 다른 클러스터들까지 대상으로 삼았다. 자동화는 그 클러스터들의 구성을 바꾸고 개발 클러스터용 애플리케이션을 설치했다. 일부 고객은 컨트롤 플레인 연결 문제와 쿠버네티스 기능 저하를 겪었고, 영향은 DE/TXL, DE/FRA, DE/FRA/2 의 Managed Kubernetes 에 미쳤다. 설치된 애플리케이션은 필요한 image pull secret 이 없어 실행되지 못했다.
onboarding operator 는 클러스터를 배포 시스템에 등록하는 일을 하며, 범위 설정 파일로 작업 대상을 정해진 클러스터로 제한한다. 이번 등록 작업에서 이 파일은 배포 브랜치로 자동 전파되어야 했다. 하지만 병합 충돌로 전파가 아무 경고 없이 실패했다. cherry-pick 실패는 로그에 남았지만 파이프라인을 막지 않았다. 같은 때 다른 변경이 onboarding operator 를 제외 목록에서 뺐고, 곧바로 배포가 시작되었다. 배포 시스템은 설정이 빠졌을 때 동기화를 멈추도록 구성되어 있지 않아, operator 가 범위 제한 없이 배포되었다. 제한이 없는 operator 는 cluster-api 기반의 다른 클러스터들도 등록 대상으로 여겼다. IONOS 는 원인으로 두 가지를 들었다. 하나는 operator 의 소프트웨어 버그였다. 다른 하나는 필요한 설정 파일이 대상 브랜치에 다 들어갔는지 배포 전에 확인하는 장치가 파이프라인에 없었다는 점이었다. 배포를 지켜보던 팀에게는 모든 것이 정상으로 보였다.
팀은 원인을 찾은 뒤 operator 를 고치고 배포 시스템 설정을 강화했다. 영향을 받은 리소스의 변경을 되돌리는 롤백을 5월 8일 저녁에 마쳤고, 5월 11일에 장애를 해결로 표시했다. 복구 스크립트를 만들어 스테이징에서 검증한 뒤 운영의 모든 영향 클러스터에 돌렸고, 5월 15일까지 의도하지 않은 설치와 변경을 모두 지웠다.
- 심각도
- –
- 영향 범위
- Additional Managed Kubernetes clusters were modified and received applications meant for a development cluster; some customers had control plane connection problems and degraded Kubernetes functionality, and cleanup ran until 15 May 2026
- 영향 사용자
- Some Managed Kubernetes customers
- 지역
- DE/TXL, DE/FRA and DE/FRA/2
- 감지까지
- –
- 복구까지
- –
증상
2026-05-08 15:15 UTC 에 상태 페이지에 공지가 올라왔다. 일부 고객이 컨트롤 플레인에 연결하지 못하고 쿠버네티스 기능이 떨어질 수 있다는 내용이었다. 영향을 받은 곳은 DE/TXL, DE/FRA, DE/FRA/2 의 Managed Kubernetes 였다.
영향을 받은 클러스터에는 개발 클러스터용 애플리케이션이 설치되고 클러스터 구성이 바뀌어 있었다. 이 애플리케이션들은 그 환경에 필요한 image pull secret 이 없어 이미지를 받지도 실행하지도 못했다.
15:52 UTC 에 쿠버네티스 엔지니어링 팀이 구성 필터링 방식의 결함을 원인으로 찾았다고 알렸다. 그 뒤 팀은 영향을 받은 리소스를 점검해 남은 잘못된 구성 변경이 모두 되돌려졌는지 확인했다.
원인
- 촉발
- 새 Managed Kubernetes 개발 클러스터를 등록하는 정기 내부 작업에서 onboarding operator 를 제외 목록에서 빼는 변경이 들어가자 곧바로 배포가 시작되었다. 이때 operator 의 대상 범위를 정하는 설정 파일은 병합 충돌로 배포 브랜치에 들어가지 못한 상태였다.
감지
–
조치
- onboarding operator 를 고쳐, 네임스페이스 설정이 명시되어 있어야만 클러스터에 작업하게 했다. 이제 operator 는 기본 설정만으로는 cluster-api 기반 클러스터에서 범위 없이 돌지 못한다.
- 필요한 설정 파일이 없으면 배포가 실패하도록 배포 시스템을 다시 구성했다. 전에는 설정이 덜 갖춰져도 배포가 조용히 진행되었다.
- 영향을 받은 리소스에서 찾아낸 변경을 되돌리는 롤백을 마쳤고, 남은 불일치가 있는지 리소스를 점검했다.
- 복구 스크립트를 만들어 스테이징에서 검증한 뒤 운영의 모든 영향 클러스터에 돌렸고, 2026-05-15 까지 의도하지 않은 설치와 변경을 모두 지웠다.
후속 조치
- 배포를 시작하기 전에 필요한 설정 파일이 모두 대상 브랜치에 전파되었는지 확인하는 필수 검증 단계를 CI/CD 파이프라인에 넣는다. 목표는 2026년 3분기다.
- 운영 시스템을 건드리는 모든 배포는 변경 크기와 상관없이 추가 동료 검토와 변경 관리 승인을 반드시 받게 한다. 이 절차는 기존 Change Approval Board 검토에 더해진다. 목표는 2026년 3분기다.
- 장애 뒤 복구 작업의 진행 상황을 영향을 받은 고객마다 제때 알릴 수 있도록 장애 커뮤니케이션 절차를 고친다. 목표는 2026년 3분기다.
교훈
클러스터 구성이 의도하지 않게 바뀐 것은 내부 작업이 고객 환경에 영향을 주지 못하게 막아야 할 통제가 실패했기 때문이다. 정리 작업 동안 영향을 받은 고객에게 진행 상황을 제대로 알리지 않아 불확실성이 더 커졌다.
출처
- https://status.ionos.cloud/incidents/4y4f2kgqhkgk · official-status · 보관본
관련 사례
같은 원인 · 공통 CI 시스템
IL-0324External Storage 데이터베이스 클러스터에 과부하가 걸려 mw-api-int, mw-parsoid, mw-jobrunner 의 지연과 데이터베이스 오류가 늘었다Wikimedia Foundation · 2025같은 원인 · 공통 CI 시스템
같은 원인 · 공통 CI 시스템
IL-0467Prow 빌드 클러스터의 노드 업그레이드 중 Boskos 파드가 크래시 루프에 빠져 GCP 프로젝트가 필요한 테스트 작업이 9시간 넘게 모두 실패했다Kubernetes project · 2019같은 원인 · 공통 CI 시스템
같은 원인 · 공통 CI 시스템
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0234
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0234/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.