replication

package
v1.4.0-alpha.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 11, 2016 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Overview

Package replication contains logic for watching and synchronizing replication controllers.

Index

Constants

View Source
const (
	// We'll attempt to recompute the required replicas of all replication controllers
	// that have fulfilled their expectations at least this often. This recomputation
	// happens based on contents in local pod storage.
	// Full Resync shouldn't be needed at all in a healthy system. This is a protection
	// against disappearing objects and watch notification, that we believe should not
	// happen at all.
	// TODO: We should get rid of it completely in the fullness of time.
	FullControllerResyncPeriod = 10 * time.Minute

	// Realistic value of the burstReplica field for the replication manager based off
	// performance requirements for kubernetes 1.0.
	BurstReplicas = 500

	// We must avoid counting pods until the pod store has synced. If it hasn't synced, to
	// avoid a hot loop, we'll wait this long between checks.
	PodStoreSyncedPollPeriod = 100 * time.Millisecond
)

Variables

This section is empty.

Functions

This section is empty.

Types

type OverlappingControllers added in v1.2.0

type OverlappingControllers []api.ReplicationController

OverlappingControllers sorts a list of controllers by creation timestamp, using their names as a tie breaker.

func (OverlappingControllers) Len added in v1.2.0

func (o OverlappingControllers) Len() int

func (OverlappingControllers) Less added in v1.2.0

func (o OverlappingControllers) Less(i, j int) bool

func (OverlappingControllers) Swap added in v1.2.0

func (o OverlappingControllers) Swap(i, j int)

type ReplicationManager

type ReplicationManager struct {
	// contains filtered or unexported fields
}

ReplicationManager is responsible for synchronizing ReplicationController objects stored in the system with actual running pods. TODO: this really should be called ReplicationController. The only reason why it's a Manager is to distinguish this type from API object "ReplicationController". We should fix this.

func NewReplicationManager

func NewReplicationManager(podInformer framework.SharedIndexInformer, kubeClient clientset.Interface, resyncPeriod controller.ResyncPeriodFunc, burstReplicas int, lookupCacheSize int) *ReplicationManager

NewReplicationManager creates a replication manager

func NewReplicationManagerFromClient added in v1.3.0

func NewReplicationManagerFromClient(kubeClient clientset.Interface, resyncPeriod controller.ResyncPeriodFunc, burstReplicas int, lookupCacheSize int) *ReplicationManager

NewReplicationManagerFromClient creates a new ReplicationManager that runs its own informer.

func NewReplicationManagerFromClientForIntegration added in v1.3.0

func NewReplicationManagerFromClientForIntegration(kubeClient clientset.Interface, resyncPeriod controller.ResyncPeriodFunc, burstReplicas int, lookupCacheSize int) *ReplicationManager

NewReplicationManagerFromClientForIntegration creates a new ReplicationManager that runs its own informer. It disables event recording for use in integration tests.

func (*ReplicationManager) Run

func (rm *ReplicationManager) Run(workers int, stopCh <-chan struct{})

Run begins watching and syncing.

func (*ReplicationManager) SetEventRecorder

func (rm *ReplicationManager) SetEventRecorder(recorder record.EventRecorder)

SetEventRecorder replaces the event recorder used by the replication manager with the given recorder. Only used for testing.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL