Skip to content

Spark Operator 퀴즈 ​

Kubeflow 2.5.2와 Apache operator 1.0.0 / chart 1.8.0 기준입니다.

1. 두 Spark Operator의 관계는? ​

  • A) 같은 chart의 이름 변경
  • B) Kubeflow의 지원 종료 후 대체품
  • C) 서로 다른 API와 수명주기를 가진 별개 프로젝트
  • D) apiVersion만 바꾸면 완전히 호환
정답 보기

정답: C

Kubeflow는 sparkoperator.k8s.io/v1beta2, 이 장의 Apache 예제는 spark.apache.org/v1을 사용합니다. 필드와 상태·재시도 모델도 검토해야 합니다.

2. 검토한 Apache operator 1.0.0의 Helm chart 버전은? ​

  • A) 1.0.0으로 반드시 동일
  • B) Kubeflow와 같은 2.5.2
  • C) Spark와 같은 4.2.0
  • D) 1.8.0
정답 보기

정답: D

Chart 버전과 앱 버전은 별개입니다. 릴리스·chart metadata와 실제 렌더링 결과를 함께 확인합니다.

3. Comet 또는 Gluten을 사용하려면? ​

  • A) 호환되는 plugin·이미지·classpath·설정을 검증
  • B) Apache Operator만 설치하면 자동 가속
  • C) 어떤 아키텍처·Spark 버전에서도 동일
  • D) Kubeflow는 무조건 불가능
정답 보기

정답: A

공식 예제도 별도 의존성과 설정이 있습니다. Operator 선택만으로 성능이나 plugin 호환성이 보장되지 않습니다.

4. 일반 spark-submit에 관한 올바른 설명은? ​

  • A) 항상 fire-and-forget
  • B) 완료 대기와 로그 확인이 가능하지만 Operator CR 재조정은 별도
  • C) Executor Pod를 만들 수 없음
  • D) Git으로 설정 관리 불가
정답 보기

정답: B

네이티브 제출도 상태·로그·UI를 확인할 수 있습니다. Operator는 CR 상태 관리·예약 controller·애플리케이션 재시도를 추가합니다.

5. Kubeflow 2.5.2의 webhook.enable 기본값은? ​

  • A) false
  • B) Spark 버전마다 자동 변경
  • C) true
  • D) 설치 namespace가 default일 때만 true
정답 보기

정답: C

예제는 기본값을 명시합니다. 별도로 false로 바꾸면 해당 webhook 경로의 기능을 검토해야 합니다.

6. 두 chart의 admission 구조는? ​

  • A) 두 chart 모두 같은 Pod mutator 설치
  • B) Webhook이 노드 배치 수행
  • C) Webhook이 Spark task 할당
  • D) Kubeflow의 Pod mutator와 동일한 webhook을 Apache chart가 설치하지 않음
정답 보기

정답: D

이 장의 흐름도는 Kubeflow를 설명합니다. Kubernetes scheduler·kubelet과 Spark driver의 역할은 별개입니다.

7. 작업을 spark-jobs에 제출할 때 필요한 설정은? ​

  • A) Controller watch 범위와 작업 namespace·RBAC를 일치시킴
  • B) Operator 설치 namespace에만 모든 작업 제출
  • C) ClusterRole만 있으면 watch 범위 불필요
  • D) default namespace가 자동으로 모든 namespace를 포함
정답 보기

정답: A

설치 namespace와 작업 namespace는 다를 수 있습니다. 기본 watch 범위가 자동으로 새 작업 namespace를 포함하지는 않습니다.

8. Kubeflow에서 사용자 볼륨의 올바른 위치는? ​

  • A) spec.driver.volumes만
  • B) spec.volumes와 driver/executor.volumeMounts
  • C) spec.executor.volumes만
  • D) status.volumes
정답 보기

정답: B

Driver·executor의 volumes 필드는 해당 CRD에 없습니다. 볼륨은 공통 spec.volumes에 선언하고 필요한 컨테이너에 mount합니다.

9. spark-local-dir- 접두사의 의미는? ​

  • A) 물리 NVMe 디스크를 자동 생성
  • B) 모든 볼륨을 S3로 전환
  • C) Operator가 native Spark 로컬 볼륨 설정으로 변환하는 특별 경로
  • D) Webhook이 반드시 유일한 구현 경로
정답 보기

정답: C

일반 볼륨 mutator는 이 로컬 디렉터리 볼륨을 건너뛰고 제출 설정 변환 경로가 처리합니다. emptyDir 자체는 물리 디스크를 선택하지 않습니다.

10. Kubeflow 2.5.2의 유효한 serviceAccount 필드는? ​

  • A) driver에만 존재
  • B) executor에만 존재
  • C) 둘 다 AWS IAM ARN이어야 함
  • D) driver.serviceAccount와 executor.serviceAccount 모두
정답 보기

정답: D

두 필드 모두 Kubernetes service account 이름입니다. API RBAC와 AWS 데이터 접근 권한은 별도로 구성합니다.

11. ScheduledSparkApplication을 매일 02:00 UTC에 실행하려면? ​

  • A) schedule: "0 2 * * *"와 timeZone: UTC
  • B) Controller 로컬 시간대에 무조건 의존
  • C) timeZone은 지원하지 않음
  • D) Executor Pod의 TZ만 설정
정답 보기

정답: A

2.5.2는 timeZone을 지원하며 기본값은 Local입니다. 예약 시간대를 명시하면 운영 환경의 로컬 설정에 의존하지 않습니다.

12. concurrencyPolicy: Forbid가 막는 것은? ​

  • A) 모든 시스템의 중복 데이터 쓰기
  • B) 같은 예약 리소스의 이전 실행과 새 예약 실행의 겹침
  • C) 애플리케이션 재시도 전부
  • D) 수동 제출 전부
정답 보기

정답: B

다른 scheduler·수동 실행·재시도로 생기는 부작용은 별도입니다. 실제 출력은 멱등성 또는 트랜잭션을 설계합니다.

13. 예약 리소스의 suspend: true 효과는? ​

  • A) 실행 중인 자식 작업을 반드시 종료
  • B) 이미 쓴 데이터를 롤백
  • C) 향후 예약 트리거를 중지
  • D) Operator deployment 삭제
정답 보기

정답: C

현재 실행은 별도로 확인·종료해야 합니다. suspend는 데이터 롤백이나 백업 기능도 아닙니다.

14. sparkVersion: 4.2.0만 바꾸면 무엇이 보장되는가? ​

  • A) Controller 런타임 자동 업그레이드
  • B) 모든 Spark plugin 호환성
  • C) Kubernetes 버전 자동 업그레이드
  • D) Controller 내부 spark-submit 업그레이드는 보장되지 않음
정답 보기

정답: D

이 장의 Kubeflow 실습은 controller 제출 런타임에 맞춰 4.0.4를 사용합니다. 다른 조합은 별도 검증합니다.

15. Operator가 관찰하는 Pod 상태는? ​

  • A) Driver와 executor 모두
  • B) Driver만
  • C) Executor만
  • D) Pod는 전혀 관찰하지 않음
정답 보기

정답: A

Controller는 executor 상태도 반영하고 정리합니다. Executor 요청과 Spark task 할당은 Spark driver가 수행합니다.

16. OnFailure 재시도 시 주의할 점은? ​

  • A) 정확히 한 번 쓰기가 자동 보장
  • B) 애플리케이션 재실행이 출력 부작용을 반복할 수 있음
  • C) 항상 같은 컨테이너만 재시작
  • D) 실패한 외부 트랜잭션을 모두 자동 롤백
정답 보기

정답: B

제출·애플리케이션 재시도와 컨테이너 재시작은 다릅니다. 재시도 횟수·간격뿐 아니라 데이터 처리 의미를 검증합니다.

17. IRSA와 EKS Pod Identity의 차이는? ​

  • A) 두 방식 모두 같은 annotation만 필요
  • B) Kubernetes Role이 S3 권한 제공
  • C) IRSA는 OIDC·role annotation, Pod Identity는 association·Agent 경로
  • D) S3 URI만 지정하면 인증 완료
정답 보기

정답: C

AWS 권한·trust 또는 association과 호환 credential provider가 필요합니다. 실제 Pod에서 유효 ID와 접근을 검증합니다.

18. Chart의 기본 8080 Prometheus endpoint는? ​

  • A) 모든 Spark JVM의 JMX 자동 수집
  • B) Spark History Server 전체 로그
  • C) S3 데이터 검증 결과
  • D) Operator 메트릭
정답 보기

정답: D

작업 JMX는 애플리케이션 exporter JAR·설정과 scrape 구성이 별도로 필요합니다.

19. Helm으로 Operator를 업그레이드할 때 CRD는? ​

  • A) 별도 CRD 변경 절차와 hook.upgradeCrd opt-in을 검토
  • B) 일반 helm upgrade가 항상 자동 교체
  • C) 기존 CRD를 무조건 삭제
  • D) 애플리케이션 리소스에는 영향 없음
정답 보기

정답: A

crds/의 CRD는 일반 upgrade에서 자동 교체되지 않습니다. CRD 삭제는 해당 custom resource에 영향을 주므로 일상적인 업그레이드 수단으로 쓰지 않습니다.

20. Helm 렌더링·CRD 검증 통과의 의미는? ​

  • A) 실제 webhook 연결까지 증명
  • B) 리소스 형식과 설정 경로 검증이며 실제 작업 성공은 별도
  • C) S3 권한과 결과 정확성까지 증명
  • D) 모든 Spark 버전의 호환성 보장
정답 보기

정답: B

실제 Pod·status·출력·재시도와 권한을 추가 검증합니다. COMPLETED도 외부 데이터가 올바르다는 증거만으로 해석하지 않습니다.

본문 / Guide