Certified Kubernetes Administration - 29

2024-06-22

  • Kubernetes
  • Cloud

Kubernetes 스케줄러 프로파일

  • Kubernetes 스케줄러 작동 방식:

    • 포드가 네 개의 노드 중 하나에 스케줄링됨.

    • 포드는 스케줄링 큐에 들어가 대기함.

    • 포드의 우선 순위에 따라 큐에서 정렬됨.

    • 필터링 단계에서 자원이 부족한 노드는 제외됨.

    • 점수화 단계에서 남은 자원에 따라 노드에 점수가 부여됨.

    • 바인딩 단계에서 가장 높은 점수를 받은 노드에 포드가 배정됨.

  • 스케줄링 플러그인:

    • 각 단계에서 다양한 플러그인이 작동함.

    • 예:

      • 큐 정렬: PrioritySort 플러그인이 포드 우선 순위에 따라 큐 정렬.

      • 필터링: NodeResourcesFit, NodeName, NodeUnschedulable 플러그인이 작동.

      • 점수화: NodeResourcesFit, ImageLocality 플러그인이 노드에 점수 부여.

      • 바인딩: DefaultBinder 플러그인이 포드를 노드에 바인딩.

  • 확장 포인트와 플러그인:

    • 각 스케줄링 단계는 확장 포인트를 가짐.

    • Pre-Filter, Filter, Post-Filter, Pre-Score, Score, Reserve, Permit, Pre-Bind, Bind, Post-Bind 등 확장 포인트가 있음.

    • 확장 포인트에 커스텀 플러그인을 연결하여 사용자 정의 코드 실행 가능.

  • 다중 스케줄러와 프로파일:

    • 여러 스케줄러를 배포할 수 있지만, 별도의 프로세스로 실행될 경우 관리가 복잡하고 경쟁 조건 발생 가능.

    • Kubernetes 1.18부터 다중 프로파일을 단일 스케줄러에서 지원.

    • 스케줄러 구성 파일에 여러 프로파일을 추가하여 각각 다른 스케줄러로 작동하게 설정 가능.

    • 각 프로파일마다 스케줄러 이름과 플러그인을 다르게 설정 가능.

  • 예시 구성:

    • 프로파일 설정 예시:
      apiVersion: kubescheduler.config.k8s.io/v1alpha2
      kind: KubeSchedulerConfiguration
      profiles:
      - schedulerName: default-scheduler
      - schedulerName: my-scheduler-2
        plugins:
          filter:
            disabled:
            - name: TaintToleration
          score:
            disabled:
            - name: SomeOtherPlugin
            enabled:
            - name: MyCustomPlugin
      - schedulerName: my-scheduler-3
        plugins:
          preScore:
            disabled: true
          score:
            disabled: true
      
  • 스케줄러 프로파일 작동 방식:

    • 프로파일마다 다른 플러그인을 활성화하거나 비활성화하여 사용자 정의 스케줄링 가능.

    • 단일 스케줄러 프로세스 내에서 여러 프로파일을 실행하여 관리 용이성 및 성능 향상.

요약

  • Kubernetes 스케줄러는 포드를 스케줄링 큐에 넣고, 필터링, 점수화, 바인딩 단계를 거쳐 노드에 배정함.

  • 스케줄링 플러그인은 각 단계에서 작동하여 포드를 스케줄링함.

  • 확장 포인트를 통해 사용자 정의 플러그인을 추가하여 스케줄링 동작을 커스터마이징 가능.

  • 다중 스케줄러 프로파일을 사용하면 단일 스케줄러 프로세스 내에서 여러 프로파일을 실행하여 관리 용이성과 성능을 향상시킬 수 있음.

  • Kubernetes 1.18부터 다중 스케줄러 프로파일을 지원하며, 구성 파일을 통해 설정 가능.

Certified ...

Certified ...