Class PriorityClass
Enumerates the system and NEONKUBE pod PriorityClass values. These are used by Kubernetes when deciding which pod to evict from a node when necessary as well as for ordering how pods will be terminated when nodes are shutdown gracefully. Each priority property defines the priority name and value.
note
Higher priorities have higher values and non-Kubernetes defined priority values must be less than 1 billion.
NEONKUBE priority property names are prefixed by "Neon" and built-in Kubernetes priority property
names are prefixed by "System" and will have Istrue
.
Values returns the list of all known priorities.
Here are the known priority values, in decending order by priority.
System | Built-in Kubernetes priority used for the most important pods running on a node. |
System | Built-in Kubernetes priority used for the important pods running on a cluster. |
Neon |
Idenifies the maximum priority reserved for NEONKUBE applications.
You should avoid using priorities in the range of Neon |
Neon | Used for critical NEONKUBE operators. |
Neon | Used for NEONKUBE database deployments. |
Neon | Used for critical OpenEBS related storage services that back critical NEONKUBE and user deployments. |
Neon | Used for NEONKUBE database deployments. |
Neon | Used for NEONKUBE API deployments. |
Neon | Used for NEONKUBE application deployments. |
Neon | Used for NEONKUBE monitoring components. |
Neon |
Idenifies the maximum priority reserved for NEONKUBE applications.
You should avoid using priorities in the range of Neon |
User | Available for very-high priority user pods. |
User | Available for high priority user pods. |
User | Available for medium priority user pods. Note that this is also configured as the global default priority class. Pods deployed without a specific priority class will be assigned this one. |
User | Available for user user pods. |
User | Available for very-low priority user pods. |
The values defined above won't change and they are spaced well apart so users can insert additional priorities as required.
The user priorities defined here are just a starting point and you're free to add
add additional priorities as required or remove or edit the ones you degine. We
recommend that most user defined priorities be lower than Neon
note
User
note
You should avoid using priorities in the range of Neon
The To
Namespace: Neon.Kube
Assembly: Neon.Kube.dll
Syntax
public static class PriorityClass
Properties
NeonApi
Used for NEONKUBE API deployments. (900004000)
Declaration
public static PriorityClass.PriorityDef NeonApi { get; }
Property Value
Type | Description |
---|---|
Priority |
NeonApp
Used for NEONKUBE application deployments. (900003000)
Declaration
public static PriorityClass.PriorityDef NeonApp { get; }
Property Value
Type | Description |
---|---|
Priority |
NeonData
Used for NEONKUBE database deployments. (900005000)
Declaration
public static PriorityClass.PriorityDef NeonData { get; }
Property Value
Type | Description |
---|---|
Priority |
NeonMax
Idenifies the maximum priority reserved for NEONKUBE applications.
You should avoid using priorities in the range of Neon
Declaration
public static PriorityClass.PriorityDef NeonMax { get; }
Property Value
Type | Description |
---|---|
Priority |
NeonMin
Idenifies the minimum priority reserved for NEONKUBE applications.
You should avoid using priorities in the range of Neon
Declaration
public static PriorityClass.PriorityDef NeonMin { get; }
Property Value
Type | Description |
---|---|
Priority |
NeonMonitor
Available for NEONKUBE monitoring related components. (900002000)
Declaration
public static PriorityClass.PriorityDef NeonMonitor { get; }
Property Value
Type | Description |
---|---|
Priority |
NeonNetwork
Used for NEONKUBE database deployments. (900007000)
Declaration
public static PriorityClass.PriorityDef NeonNetwork { get; }
Property Value
Type | Description |
---|---|
Priority |
NeonOperator
Used for critical NEONKUBE operators. (900008000)
Declaration
public static PriorityClass.PriorityDef NeonOperator { get; }
Property Value
Type | Description |
---|---|
Priority |
NeonStorage
Used for OpenEBS related storage deployments. (1000006000)
Declaration
public static PriorityClass.PriorityDef NeonStorage { get; }
Property Value
Type | Description |
---|---|
Priority |
SystemClusterCritical
Built-in Kubernetes priority used for the important pods running on a cluster. (2000000000)
Declaration
public static PriorityClass.PriorityDef SystemClusterCritical { get; }
Property Value
Type | Description |
---|---|
Priority |
SystemNodeCritical
Built-in Kubernetes priority used for the most important pods running on a node. (2000001000)
Declaration
public static PriorityClass.PriorityDef SystemNodeCritical { get; }
Property Value
Type | Description |
---|---|
Priority |
UserHigh
Available for high priority user pods. (4000)
Declaration
public static PriorityClass.PriorityDef UserHigh { get; }
Property Value
Type | Description |
---|---|
Priority |
UserLow
Available for low priority user pods. (2000)
Declaration
public static PriorityClass.PriorityDef UserLow { get; }
Property Value
Type | Description |
---|---|
Priority |
UserMedium
Available for medium priority user pods and is also configured as the global default when a priority isn't explicitly specified. (3000)
Declaration
public static PriorityClass.PriorityDef UserMedium { get; }
Property Value
Type | Description |
---|---|
Priority |
UserVeryHigh
Available for very high priority user pods. (5000)
Declaration
public static PriorityClass.PriorityDef UserVeryHigh { get; }
Property Value
Type | Description |
---|---|
Priority |
UserVeryLow
Available for very low priority user pods. (1000)
Declaration
public static PriorityClass.PriorityDef UserVeryLow { get; }
Property Value
Type | Description |
---|---|
Priority |
Values
Returns the list of all known built-in pod priorities.
Declaration
public static IReadOnlyList<PriorityClass.PriorityDef> Values { get; }
Property Value
Type | Description |
---|---|
IRead |
Methods
EnsureKnown(string)
Ensures that a priority class name is a standard NEONKUBE priority class.
Declaration
public static void EnsureKnown(string priorityClass)
Parameters
Type | Name | Description |
---|---|---|
string | priorityClass | The class name to check or |
Exceptions
Type | Condition |
---|---|
Key |
Thrown for unknown priority classes. |
ToManifest()
Generates the Kubernetes manifest to be used to initialize the non-Kubernetes priority classes.
Declaration
public static string ToManifest()
Returns
Type | Description |
---|---|
string | The manifest text. |