YuniKorn Concepts: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 70: Line 70:
=Resource=
=Resource=
=Quantity=
=Quantity=
=Queue=
A namespace can have a "queue" if annotated with "yunikorn.apache.org/queue".
A namespace can have a "parent queue" is annotated with "yunikorn.apache.org/parentqueue".
===Queue Priority===
==Queue Max Resource==


=Reservation=
=Reservation=

Revision as of 00:10, 15 December 2023

Internal

Partition

The total "partition resource" is the sum of its nodes' "capacity" (node.GetCapacity(), which is the node's "total resource").

Each partition has a root queue, which is the start of the queue hierarchy per partition.

Plugin Mode

Resource Manager (RM)

YuniKorn communicates with various implementation of resource management systems (Kubernetes, YARN) via a standard interface defined in the yunikorn-scheduler-interface package.

Allocation

A core scheduler-level concept. An allocation can be in one of two states ("Pending" and "In-Progress"). A pending allocation is one which has been decided upon by YuniKorn but has not yet been communicated to the default scheduler via PreFilter()/Filter(). Once PreFilter()/Filter() pass, the allocation transitions to "In-Progress" to signify that the default scheduler is responsible for fulfilling the allocation. Once PostBind() is called in the plugin to signify completion of the allocation, it is removed.

Application

An application is assigned to a partition, there's an "applications" map in each partition. Can the same application assigned to two or more partitions at the same time?.

Application Metadata

Application ID

Looks in this order:

  • Annotation "yunikorn.apache.org/app-id"
  • Label "applicationId"
  • ...

Queue Name

User

Tags

Groups

TaskGroups

OwnerReference

Usually a pod, designated by its UID.

Scheduling Policy Parameters

Application Task

For the Kubernetes implementations, Kubernetes pods are mapped onto YuniKorn Core Tasks, and the task ID is the pod UID.

A task may be the "originator" of the Application, if it's the first one seen for the application. If that is the case, it is considered "first pod"/"owner"/"driver".

Task Metadata

Application ID

TaskID

(same as the Pod ID)

Pod

Placeholder

TaskGroupName

Task Group

Application Request

Application Priority

Task

Node

Can a node be declared to be part of a partition with the "si/node-partition" label? It seems that the node Attributes partially come from the node labels.

In the Kubernetes implementation, the node is first added, then updated.

As part of handling the RMNodeUpdateEvent, RMProxy calls callback.UdpateNode().

Configuration

Context

yunikorn-k8shim cache.Context

Resource

Quantity

Reservation

Manual Scheduling

Policy Group

Set in the scheduler when a new resource manager is registered.