クイズ: 所有参照と削除の伝播
한국어 원문으로 표시합니다.
자식의 ownerReferences 에 적힌 uid 가 어떤 오브젝트의 것과도 맞지 않으면?
- 참조가 무시되고 자식은 소유자 없는 오브젝트로 남는다
- 가비지 컬렉터가 부모가 사라진 것으로 보고 자식을 지운다
- API 서버가 그 자식을 만들 때 참조 오류로 거부한다
- 이름이 같은 오브젝트를 찾아 부모로 다시 이어 준다
--cascade=orphan 으로 부모를 지우면 자식은 어떻게 되나?
- 남아 있지만 그 소유자 참조가 떼어진다
- 남아 있고 소유자 참조도 그대로 남는다
- 부모와 함께 지워지되 순서만 뒤로 밀린다
- 읽기 전용으로 바뀌어 수정할 수 없게 된다
--cascade=foreground 로 지운 부모에 남는 파이널라이저의 이름은?
- kubernetes.io/pv-protection
- orphan
- foregroundDeletion
- blockOwnerDeletion
네임스페이스 a 의 오브젝트를 소유자로 적은 네임스페이스 b 의 자식은 어떻게 되나?
- 교차 참조가 허용되어 정상적으로 함께 정리된다
- apply 단계에서 어드미션이 교차 네임스페이스 참조를 거부한다
- 참조만 무효가 되고 자식은 독립 오브젝트로 계속 남는다
- 경고 이벤트가 남고 자식이 정리된다
파이널라이저가 남아 있는 오브젝트에 삭제 요청을 보내면?
- deletionTimestamp 만 찍히고 오브젝트는 계속 조회된다
- 요청이 거절되고 파이널라이저를 먼저 지우라는 오류가 나온다
- 오브젝트가 즉시 사라지고 파이널라이저는 기록으로만 남는다
- 오브젝트가 읽기 전용이 되어 컨트롤러도 수정할 수 없다
오퍼레이터를 먼저 삭제한 뒤 남은 커스텀 리소스를 지웠더니 Terminating 에서 풀리지 않는다. 가장 올바른 대응은?
- 파이널라이저를 손으로 떼어 내 삭제를 끝낸다
- 네임스페이스째 강제로 지워 남은 오브젝트를 한 번에 없앤다
- 오퍼레이터를 다시 올려 정리를 끝내고 스스로 파이널라이저를 떼게 한다
- 같은 이름의 리소스를 다시 만들어 참조를 새로 잇는다