YuniKorn Concepts: Difference between revisions
(→Queue) |
|||
Line 9: | Line 9: | ||
=Queue= | =Queue= | ||
{{External|https://yunikorn.apache.org/docs/user_guide/queue_config}} | |||
A namespace can have a "queue" if annotated with "yunikorn.apache.org/queue". | A namespace can have a "queue" if annotated with "yunikorn.apache.org/queue". | ||
Line 16: | Line 17: | ||
==Access Control List== | ==Access Control List== | ||
==Queue Priority== | ==Queue Priority== | ||
=Identity= | =Identity= | ||
An application is submitted under a certain identity, that consists of a [[#User|user]] and one or more [[#Group|groups]]. | An application is submitted under a certain identity, that consists of a [[#User|user]] and one or more [[#Group|groups]]. |
Revision as of 00:17, 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.
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 Max Resource
Access Control List
Queue Priority
Identity
An application is submitted under a certain identity, that consists of a user and one or more groups.
TO PARSE: https://yunikorn.apache.org/docs/user_guide/usergroup_resolution/
User
Group
The identity an application is submitted under may be associated with one or more groups.
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.