Certified Kubernetes Administration - 28
2024-06-22
- Kubernetes
- Cloud
Kubernetes 클러스터에서 다중 스케줄러 배포
-
다중 스케줄러의 필요성:
-
기본 스케줄러가 모든 요구를 충족하지 못할 때, 특정 애플리케이션을 위한 맞춤형 스케줄링 알고리즘 필요.
-
커스텀 스케줄러를 작성하여 추가적인 조건과 검사를 추가할 수 있음.
-
-
스케줄러 배포:
-
Kubernetes 클러스터에 여러 스케줄러 배포 가능.
-
기본 스케줄러는 "default-scheduler"로 명명.
-
추가 스케줄러는 별도의 구성 파일로 설정하여 배포.
-
-
스케줄러 이름 설정:
- 스케줄러의 구성 파일에
schedulerName
속성 추가.
- 스케줄러의 구성 파일에
-
추가 스케줄러 배포 방법:
-
바이너리 사용:
-
kube-scheduler 바이너리를 다운로드하여 서비스로 실행.
-
각 스케줄러는 별도의 구성 파일과 스케줄러 이름 사용.
-
-
Pod로 배포:
-
스케줄러를 Pod 정의 파일로 작성.
-
kubeconfig
경로 및 커스텀 구성 파일 경로를 지정. -
리더 선출 옵션 (
leaderElect
) 설정.
-
-
Deployment로 배포:
-
Kubernetes의 Deployment로 스케줄러 배포.
-
커스텀 스케줄러 이미지와 구성 파일 사용.
-
ConfigMap을 통해 구성 파일을 제공.
-
서비스 계정 및 클러스터 역할 바인딩 설정 필요.
-
-
-
Pod에 스케줄러 지정:
-
Pod 정의 파일에
schedulerName
속성 추가하여 특정 스케줄러 사용 지정. -
예시:
apiVersion: v1 kind: Pod metadata: name: mypod spec: schedulerName: my-custom-scheduler containers: - name: mycontainer image: myimage
-
-
Pod 상태 확인:
-
kubectl create
명령어로 Pod 생성. -
Pod가
Pending
상태에 머무를 경우, 스케줄러가 올바르게 구성되지 않았을 가능성. -
kubectl describe pod <pod-name>
명령어로 Pod 이벤트 및 스케줄러 상태 확인. -
kubectl get events -o wide
명령어로 이벤트 소스 확인. -
kubectl logs <scheduler-pod-name>
명령어로 스케줄러 로그 확인.
-
요약
-
Kubernetes 클러스터에 여러 스케줄러를 배포하여 다양한 스케줄링 요구를 충족할 수 있음.
-
기본 스케줄러 외에도 커스텀 스케줄러를 추가하여 특정 애플리케이션의 요구 사항을 충족.
-
Pod 정의 파일에
schedulerName
속성을 추가하여 특정 스케줄러를 지정할 수 있음. -
Pod 상태와 스케줄러 동작을 확인하기 위해 다양한
kubectl
명령어를 사용할 수 있음.
Certified ...
Certified ...