퀴즈: 스케일 하위 리소스
kubectl scale 이 Deployment 가 아닌 커스텀 리소스에도 동작하는 이유는?
- kubectl 이 CRD 스키마를 읽어 복제본처럼 보이는 필드를 찾아 주기 때문
- 타입이 scale 하위 리소스로 자신을 Scale 오브젝트로 번역해 내놓기 때문
- API 서버가 모든 타입의 첫 번째 정수 필드를 복제본으로 취급하기 때문
- kubectl 이 종류별 확장 코드를 내장하고 CRD 는 그중 기본값을 쓰기 때문
specReplicasPath 에 실제 오브젝트에 없는 경로를 적어 두면 kubectl scale 은 어떻게 되나?
- CRD 를 적용하는 시점에 API 서버가 경로를 검사해 거부한다
- 명령이 오류 메시지와 함께 0 이 아닌 코드로 끝난다
- 성공했다고 답하지만 오브젝트의 값은 바뀌지 않는다
- 경로가 없으므로 API 서버가 그 경로를 새로 만들어 값을 넣는다
CRD 에 scale 하위 리소스가 있고 labelSelectorPath 만 없을 때 HPA 의 조건은?
- AbleToScale 이 False 가 되고 대상을 찾을 수 없다는 메시지가 남는다
- 두 조건 모두 True 이지만 지표가 없어 조정만 일어나지 않는다
- HPA 오브젝트 자체가 어드미션 단계에서 거부된다
- AbleToScale 은 True 인데 ScalingActive 가 False 로 남는다
컨트롤러가 statusReplicasPath 가 가리키는 값을 채우려면 무엇이 필요한가?
- status 서브리소스를 함께 켜고 그 창으로 써야 한다
- scale 하위 리소스에 직접 PUT 을 보내면 status 가 함께 갱신된다
- CRD 의 스키마에서 그 필드에 기본값을 선언해 두어야 한다
- 복제본 필드를 spec 과 status 양쪽에 같은 이름으로 두어야 한다
컨트롤러가 없는 클러스터에서 커스텀 리소스를 scale 로 5 로 올렸다. scale 하위 리소스의 두 숫자는?
- 원하는 수와 실제 수가 모두 5 로 함께 올라간다
- 원하는 수는 5 이고 실제 수는 0 에 머문다
- 둘 다 그대로이고 명령이 조용히 무시된다
- 원하는 수는 그대로이고 실제 수만 5 로 기록된다
HPA 의 scaleTargetRef 가 커스텀 리소스를 가리킬 때 목록 화면의 REFERENCE 칸에 무엇이 나오나?
- 대상이 번역된 결과라 언제나 Scale 이라는 이름이 나온다
- 커스텀 리소스는 내장 종류가 아니라 칸이 비어 있다
- 그 커스텀 리소스의 종류와 이름이 그대로 나온다
- 대상이 실제로 만든 파드의 소유자 종류가 대신 나온다