Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNotSupported is the error returned when a strategy name does not match // any supported placement strategy. ErrNotSupported = errors.New("strategy not supported") // ErrNoResourcesAvailable is the error returned when there are no resources // available to schedule a container. This can occur if there are no nodes in // the cluster or if no node contains sufficient resources for the container. ErrNoResourcesAvailable = errors.New("no resources available to schedule container") )
Functions ¶
Types ¶
type BinpackPlacementStrategy ¶ added in v0.2.0
type BinpackPlacementStrategy struct { }
BinpackPlacementStrategy places a container onto the most packed node in the cluster.
func (*BinpackPlacementStrategy) Initialize ¶ added in v0.2.0
func (p *BinpackPlacementStrategy) Initialize() error
Initialize a BinpackPlacementStrategy.
func (*BinpackPlacementStrategy) Name ¶ added in v0.2.0
func (p *BinpackPlacementStrategy) Name() string
Name returns the name of the strategy.
func (*BinpackPlacementStrategy) RankAndSort ¶ added in v1.0.0
func (p *BinpackPlacementStrategy) RankAndSort(config *cluster.ContainerConfig, nodes []*node.Node) ([]*node.Node, error)
RankAndSort sorts nodes based on the binpack strategy applied to the container config.
type PlacementStrategy ¶
type PlacementStrategy interface { // Name of the strategy Name() string // Initialize performs any initial configuration required by the strategy and returns // an error if one is encountered. // If no initial configuration is needed, this may be a no-op and return a nil error. Initialize() error // RankAndSort applies the strategy to a list of nodes and ranks them based // on the best fit given the container configuration. It returns a sorted // list of nodes (based on their ranks) or an error if there is no // available node on which to schedule the container. RankAndSort(config *cluster.ContainerConfig, nodes []*node.Node) ([]*node.Node, error) }
PlacementStrategy is the interface for a container placement strategy.
func New ¶
func New(name string) (PlacementStrategy, error)
New creates a new PlacementStrategy for the given strategy name.
type RandomPlacementStrategy ¶
type RandomPlacementStrategy struct {
// contains filtered or unexported fields
}
RandomPlacementStrategy randomly places the container into the cluster.
func (*RandomPlacementStrategy) Initialize ¶
func (p *RandomPlacementStrategy) Initialize() error
Initialize a RandomPlacementStrategy.
func (*RandomPlacementStrategy) Name ¶ added in v0.2.0
func (p *RandomPlacementStrategy) Name() string
Name returns the name of the strategy.
func (*RandomPlacementStrategy) RankAndSort ¶ added in v1.0.0
func (p *RandomPlacementStrategy) RankAndSort(config *cluster.ContainerConfig, nodes []*node.Node) ([]*node.Node, error)
RankAndSort randomly sorts the list of nodes.
type SpreadPlacementStrategy ¶ added in v0.2.0
type SpreadPlacementStrategy struct { }
SpreadPlacementStrategy places a container on the node with the fewest running containers.
func (*SpreadPlacementStrategy) Initialize ¶ added in v0.2.0
func (p *SpreadPlacementStrategy) Initialize() error
Initialize a SpreadPlacementStrategy.
func (*SpreadPlacementStrategy) Name ¶ added in v0.2.0
func (p *SpreadPlacementStrategy) Name() string
Name returns the name of the strategy.
func (*SpreadPlacementStrategy) RankAndSort ¶ added in v1.0.0
func (p *SpreadPlacementStrategy) RankAndSort(config *cluster.ContainerConfig, nodes []*node.Node) ([]*node.Node, error)
RankAndSort sorts nodes based on the spread strategy applied to the container config.