YuniKorn Core Concepts: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 7: Line 7:


=Application=
=Application=
An application is an abstract programmatic entity that requires resources to execute.
An application is an abstract programmatic entity that requires resources to execute. The application expresses its needs of resources by issuing [[#Allocation|Allocation]] requests, which are handled by the scheduler in an attempt to find a [[#Node|Node]] that can accommodate the resource need for that specific allocation request. In the default Kubernetes implementation, and application is any higher level workload resource that creates pods: deployments, jobs, etc.


=Allocation=
=Allocation=

Revision as of 21:54, 18 December 2023

Internal

Overview

YuniKorn core is a universal scheduler that can be used to assign Application resource Allocations to Nodes that expose resources. Its default implementation allocate Kubernetes pods, where multiple pods belong to an application and request resources like memory, cores and GPUs, to Kubernetes nodes. However, Applications, Allocations and Nodes can be mapped onto an arbitrary domain. The scheduler assumes that different Allocation may have different priorities, and performs the higher priority Allocations first. The scheduler also has the concept of preemption.

Application

An application is an abstract programmatic entity that requires resources to execute. The application expresses its needs of resources by issuing Allocation requests, which are handled by the scheduler in an attempt to find a Node that can accommodate the resource need for that specific allocation request. In the default Kubernetes implementation, and application is any higher level workload resource that creates pods: deployments, jobs, etc.

Allocation

Node

Resource

Queue

Priority

Preemption