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) PlaceContainer ¶ added in v0.2.0
func (p *BinpackPlacementStrategy) PlaceContainer(config *cluster.ContainerConfig, nodes []*node.Node) (*node.Node, error)
PlaceContainer places a container on the node with the most running containers.
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 // Given a container configuration and a set of nodes, select the target // node where the container should be scheduled. PlaceContainer returns // an error if there is no available node on which to schedule the container. PlaceContainer(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) PlaceContainer ¶
func (p *RandomPlacementStrategy) PlaceContainer(config *cluster.ContainerConfig, nodes []*node.Node) (*node.Node, error)
PlaceContainer places the container on a random node in the cluster.
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) PlaceContainer ¶ added in v0.2.0
func (p *SpreadPlacementStrategy) PlaceContainer(config *cluster.ContainerConfig, nodes []*node.Node) (*node.Node, error)
PlaceContainer places a container on the node with the fewest running containers.