CNPA — 클라우드 네이티브 플랫폼 엔지니어링 어소시에이트 · 플랫폼 API 와 추상화 · 퀴즈
퀴즈: 플랫폼 API 와 추상화
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
플랫폼 API 를 사내 웹 앱 대신 CRD 로 만들 때 '공짜로' 따라오지 않는 것은?
- RBAC 을 통한 인가와 감사 로그
- `resourceVersion` 기반 낙관적 동시성 제어와 watch
- CR 을 보고 실제 워크로드를 만들어 주는 조정 로직
- OpenAPI 스키마에 의한 요청 검증
CRD 스키마의 `default: 2` 가 하는 일은?
- kubectl 이 로컬에서 값을 채워 서버로 보낸다
- 컨트롤러가 조정 루프에서 값을 채운다
- 값이 없을 때 요청을 거절한다
- API 서버가 저장 시점에 값을 채워 넣으므로, 필드를 생략해도 조회하면 값이 들어 있다
테넌트 팀이 직접 만드는 커스텀 리소스의 스코프를 Cluster 로 정했을 때 생기는 문제는?
- kubectl 로 조회할 수 없다
- 이름이 클러스터 전역이라 테넌트 간 이름이 충돌하고, 권한을 ClusterRole 로만 줄 수 있어 경계를 긋기 어렵다
- Cluster 스코프에서는 OpenAPI 스키마 검증이 동작하지 않는다
- GitOps 도구가 관리할 수 없다
ResourceQuota 에 `requests.cpu` 가 설정된 네임스페이스에서 리소스 요청을 명시하지 않은 파드를 만들면?
- 항상 성공하며 요청은 0 으로 계산된다
- 쿼터가 자동으로 늘어난다
- LimitRange 가 기본값을 제공하지 않으면 파드 생성이 거절된다
- 파드는 만들어지지만 스케줄되지 않는다
플랫폼 추상화에 탈출구(escape hatch)를 남겨야 하는 이유로 가장 적절한 것은?
- 탈출구가 없으면 CRD 스키마 검증이 동작하지 않기 때문에
- 지원되지 않는 요구를 만난 팀이 플랫폼을 완전히 버리고 생 YAML 로 돌아가면 다시 돌아오지 않기 때문에
- 쿠버네티스가 탈출구 필드를 필수로 요구하기 때문에
- 탈출구를 쓰면 플랫폼 비용이 줄어들기 때문에
GPU 노드에 `gpu.homelab/tier=xlarge` 같은 의미 기반 라벨을 사람이 정의해 붙이는 이유는?
- 자동 라벨링 도구가 라벨을 붙이지 못하기 때문에
- 쿠버네티스가 GPU 를 스케줄링 가능한 자원으로 아예 인식하지 못하기 때문에
- 라벨이 많을수록 스케줄링이 빨라지기 때문에
- 자동 라벨은 메모리 크기가 문자열이라 '이상/이하' 비교 셀렉터를 만들 수 없고, 워크로드는 카드 모델명이 아니라 필요한 체급으로 선택하고 싶기 때문에