Documentation ¶
Overview ¶
Package replication contains logic for watching and synchronizing replication controllers.
Index ¶
- Constants
- type OverlappingControllers
- type ReplicationManager
- func NewReplicationManager(podInformer framework.SharedIndexInformer, kubeClient clientset.Interface, ...) *ReplicationManager
- func NewReplicationManagerFromClient(kubeClient clientset.Interface, resyncPeriod controller.ResyncPeriodFunc, ...) *ReplicationManager
- func NewReplicationManagerFromClientForIntegration(kubeClient clientset.Interface, resyncPeriod controller.ResyncPeriodFunc, ...) *ReplicationManager
Constants ¶
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 ¶
type OverlappingControllers []api.ReplicationController
OverlappingControllers sorts a list of controllers by creation timestamp, using their names as a tie breaker.
func (OverlappingControllers) Len ¶
func (o OverlappingControllers) Len() int
func (OverlappingControllers) Less ¶
func (o OverlappingControllers) Less(i, j int) bool
func (OverlappingControllers) Swap ¶
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, garbageCollectorEnabled bool) *ReplicationManager
NewReplicationManager creates a replication manager
func NewReplicationManagerFromClient ¶
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 ¶
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.