Interface V1.TopologySpreadConstraintOrBuilder

All Superinterfaces:
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
All Known Implementing Classes:
V1.TopologySpreadConstraint, V1.TopologySpreadConstraint.Builder
Enclosing class:
V1

public static interface V1.TopologySpreadConstraintOrBuilder extends com.google.protobuf.MessageOrBuilder
  • Method Summary

    Modifier and Type
    Method
    Description
    LabelSelector is used to find matching pods.
    LabelSelector is used to find matching pods.
    int
    MaxSkew describes the degree to which pods may be unevenly distributed.
    TopologyKey is the key of node labels.
    com.google.protobuf.ByteString
    TopologyKey is the key of node labels.
    WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint.
    com.google.protobuf.ByteString
    WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint.
    boolean
    LabelSelector is used to find matching pods.
    boolean
    MaxSkew describes the degree to which pods may be unevenly distributed.
    boolean
    TopologyKey is the key of node labels.
    boolean
    WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint.

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    isInitialized

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
  • Method Details

    • hasMaxSkew

      boolean hasMaxSkew()
       MaxSkew describes the degree to which pods may be unevenly distributed.
       When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
       between the number of matching pods in the target topology and the global minimum.
       For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
       labelSelector spread as 1/1/0:
       +-------+-------+-------+
       | zone1 | zone2 | zone3 |
       +-------+-------+-------+
       |   P   |   P   |       |
       +-------+-------+-------+
       - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1;
       scheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2)
       violate MaxSkew(1).
       - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
       When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
       to topologies that satisfy it.
       It's a required field. Default value is 1 and 0 is not allowed.
       
      optional int32 maxSkew = 1;
    • getMaxSkew

      int getMaxSkew()
       MaxSkew describes the degree to which pods may be unevenly distributed.
       When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
       between the number of matching pods in the target topology and the global minimum.
       For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
       labelSelector spread as 1/1/0:
       +-------+-------+-------+
       | zone1 | zone2 | zone3 |
       +-------+-------+-------+
       |   P   |   P   |       |
       +-------+-------+-------+
       - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1;
       scheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2)
       violate MaxSkew(1).
       - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
       When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
       to topologies that satisfy it.
       It's a required field. Default value is 1 and 0 is not allowed.
       
      optional int32 maxSkew = 1;
    • hasTopologyKey

      boolean hasTopologyKey()
       TopologyKey is the key of node labels. Nodes that have a label with this key
       and identical values are considered to be in the same topology.
       We consider each <key, value> as a "bucket", and try to put balanced number
       of pods into each bucket.
       It's a required field.
       
      optional string topologyKey = 2;
    • getTopologyKey

      String getTopologyKey()
       TopologyKey is the key of node labels. Nodes that have a label with this key
       and identical values are considered to be in the same topology.
       We consider each <key, value> as a "bucket", and try to put balanced number
       of pods into each bucket.
       It's a required field.
       
      optional string topologyKey = 2;
    • getTopologyKeyBytes

      com.google.protobuf.ByteString getTopologyKeyBytes()
       TopologyKey is the key of node labels. Nodes that have a label with this key
       and identical values are considered to be in the same topology.
       We consider each <key, value> as a "bucket", and try to put balanced number
       of pods into each bucket.
       It's a required field.
       
      optional string topologyKey = 2;
    • hasWhenUnsatisfiable

      boolean hasWhenUnsatisfiable()
       WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
       the spread constraint.
       - DoNotSchedule (default) tells the scheduler not to schedule it.
       - ScheduleAnyway tells the scheduler to schedule the pod in any location,
         but giving higher precedence to topologies that would help reduce the
         skew.
       A constraint is considered "Unsatisfiable" for an incoming pod
       if and only if every possible node assignment for that pod would violate
       "MaxSkew" on some topology.
       For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
       labelSelector spread as 3/1/1:
       +-------+-------+-------+
       | zone1 | zone2 | zone3 |
       +-------+-------+-------+
       | P P P |   P   |   P   |
       +-------+-------+-------+
       If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
       to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
       MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
       won't make it *more* imbalanced.
       It's a required field.
       
      optional string whenUnsatisfiable = 3;
    • getWhenUnsatisfiable

      String getWhenUnsatisfiable()
       WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
       the spread constraint.
       - DoNotSchedule (default) tells the scheduler not to schedule it.
       - ScheduleAnyway tells the scheduler to schedule the pod in any location,
         but giving higher precedence to topologies that would help reduce the
         skew.
       A constraint is considered "Unsatisfiable" for an incoming pod
       if and only if every possible node assignment for that pod would violate
       "MaxSkew" on some topology.
       For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
       labelSelector spread as 3/1/1:
       +-------+-------+-------+
       | zone1 | zone2 | zone3 |
       +-------+-------+-------+
       | P P P |   P   |   P   |
       +-------+-------+-------+
       If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
       to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
       MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
       won't make it *more* imbalanced.
       It's a required field.
       
      optional string whenUnsatisfiable = 3;
    • getWhenUnsatisfiableBytes

      com.google.protobuf.ByteString getWhenUnsatisfiableBytes()
       WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
       the spread constraint.
       - DoNotSchedule (default) tells the scheduler not to schedule it.
       - ScheduleAnyway tells the scheduler to schedule the pod in any location,
         but giving higher precedence to topologies that would help reduce the
         skew.
       A constraint is considered "Unsatisfiable" for an incoming pod
       if and only if every possible node assignment for that pod would violate
       "MaxSkew" on some topology.
       For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
       labelSelector spread as 3/1/1:
       +-------+-------+-------+
       | zone1 | zone2 | zone3 |
       +-------+-------+-------+
       | P P P |   P   |   P   |
       +-------+-------+-------+
       If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
       to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
       MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
       won't make it *more* imbalanced.
       It's a required field.
       
      optional string whenUnsatisfiable = 3;
    • hasLabelSelector

      boolean hasLabelSelector()
       LabelSelector is used to find matching pods.
       Pods that match this label selector are counted to determine the number of pods
       in their corresponding topology domain.
       +optional
       
      optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 4;
    • getLabelSelector

      Meta.LabelSelector getLabelSelector()
       LabelSelector is used to find matching pods.
       Pods that match this label selector are counted to determine the number of pods
       in their corresponding topology domain.
       +optional
       
      optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 4;
    • getLabelSelectorOrBuilder

      Meta.LabelSelectorOrBuilder getLabelSelectorOrBuilder()
       LabelSelector is used to find matching pods.
       Pods that match this label selector are counted to determine the number of pods
       in their corresponding topology domain.
       +optional
       
      optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 4;