Class IoK8sApiCoreV1TopologySpreadConstraint


  • @Generated(value="org.openapitools.codegen.languages.JavaClientCodegen",
               date="2020-11-26T11:01:11.402583+13:00[Pacific/Auckland]")
    public class IoK8sApiCoreV1TopologySpreadConstraint
    extends Object
    TopologySpreadConstraint specifies how to spread matching pods among the given topology.
    • Constructor Detail

      • IoK8sApiCoreV1TopologySpreadConstraint

        public IoK8sApiCoreV1TopologySpreadConstraint()
    • Method Detail

      • getMaxSkew

        public Integer getMaxSkew()
        MaxSkew describes the degree to which pods may be unevenly distributed. It's the maximum permitted difference between the number of matching pods in any two topology domains of a given topology type. 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. It's a required field. Default value is 1 and 0 is not allowed.
        Returns:
        maxSkew
      • setMaxSkew

        public void setMaxSkew​(Integer maxSkew)
      • getTopologyKey

        public 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.
        Returns:
        topologyKey
      • setTopologyKey

        public void setTopologyKey​(String topologyKey)
      • getWhenUnsatisfiable

        public 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 still schedule it It's considered as \"Unsatisfiable\" if and only if placing incoming pod on any topology violates \"MaxSkew\". 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.
        Returns:
        whenUnsatisfiable
      • setWhenUnsatisfiable

        public void setWhenUnsatisfiable​(String whenUnsatisfiable)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object