member

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Nov 1, 2019 License: Apache-2.0 Imports: 27 Imported by: 2

Documentation

Index

Constants

View Source
const (
	// EvictLeaderBeginTime is the key of evict Leader begin time
	EvictLeaderBeginTime = "evictLeaderBeginTime"
	// EvictLeaderTimeout is the timeout limit of evict leader
	EvictLeaderTimeout = 3 * time.Minute
)
View Source
const (
	// LastAppliedConfigAnnotation is annotation key of last applied configuration
	LastAppliedConfigAnnotation = "pingcap.com/last-applied-configuration"
	// ImagePullBackOff is the pod state of image pull failed
	ImagePullBackOff = "ImagePullBackOff"
	// ErrImagePull is the pod state of image pull failed
	ErrImagePull = "ErrImagePull"
)
View Source
const (
	// MaxResignDDLOwnerCount is the max regign DDL owner count
	MaxResignDDLOwnerCount = 3
)

Variables

This section is empty.

Functions

func CombineAnnotations added in v1.0.0

func CombineAnnotations(a, b map[string]string) map[string]string

CombineAnnotations merges two annotations maps

func GetLastAppliedConfig

func GetLastAppliedConfig(set *apps.StatefulSet) (*apps.StatefulSetSpec, *corev1.PodSpec, error)

GetLastAppliedConfig get last applied config info from Statefulset's annotation

func NewPDMemberManager

func NewPDMemberManager(pdControl pdapi.PDControlInterface,
	setControl controller.StatefulSetControlInterface,
	svcControl controller.ServiceControlInterface,
	setLister v1.StatefulSetLister,
	svcLister corelisters.ServiceLister,
	podLister corelisters.PodLister,
	epsLister corelisters.EndpointsLister,
	podControl controller.PodControlInterface,
	pvcLister corelisters.PersistentVolumeClaimLister,
	pdScaler Scaler,
	pdUpgrader Upgrader,
	autoFailover bool,
	pdFailover Failover) manager.Manager

NewPDMemberManager returns a *pdMemberManager

func NewTiDBMemberManager

func NewTiDBMemberManager(setControl controller.StatefulSetControlInterface,
	svcControl controller.ServiceControlInterface,
	tidbControl controller.TiDBControlInterface,
	setLister v1.StatefulSetLister,
	svcLister corelisters.ServiceLister,
	podLister corelisters.PodLister,
	tidbUpgrader Upgrader,
	autoFailover bool,
	tidbFailover Failover) manager.Manager

NewTiDBMemberManager returns a *tidbMemberManager

func NewTiKVMemberManager

func NewTiKVMemberManager(pdControl pdapi.PDControlInterface,
	setControl controller.StatefulSetControlInterface,
	svcControl controller.ServiceControlInterface,
	setLister v1.StatefulSetLister,
	svcLister corelisters.ServiceLister,
	podLister corelisters.PodLister,
	nodeLister corelisters.NodeLister,
	autoFailover bool,
	tikvFailover Failover,
	tikvScaler Scaler,
	tikvUpgrader Upgrader) manager.Manager

NewTiKVMemberManager returns a *tikvMemberManager

func SetLastAppliedConfigAnnotation

func SetLastAppliedConfigAnnotation(set *apps.StatefulSet) error

SetLastAppliedConfigAnnotation set last applied config info to Statefulset's annotation

func SetServiceLastAppliedConfigAnnotation

func SetServiceLastAppliedConfigAnnotation(svc *corev1.Service) error

SetServiceLastAppliedConfigAnnotation set last applied config info to Service's annotation

Types

type Failover added in v0.2.0

type Failover interface {
	Failover(*v1alpha1.TidbCluster) error
	Recover(*v1alpha1.TidbCluster)
}

Failover implements the logic for pd/tikv/tidb's failover and recovery.

func NewFakePDFailover added in v0.2.0

func NewFakePDFailover() Failover

NewFakePDFailover returns a fake Failover

func NewFakeTiDBFailover added in v0.2.0

func NewFakeTiDBFailover() Failover

NewFakeTiDBFailover returns a fake Failover

func NewFakeTiKVFailover added in v0.2.0

func NewFakeTiKVFailover() Failover

NewFakeTiKVFailover returns a fake Failover

func NewPDFailover added in v0.2.0

NewPDFailover returns a pd Failover

func NewTiDBFailover added in v0.2.0

func NewTiDBFailover(failoverPeriod time.Duration) Failover

NewTiDBFailover returns a tidbFailover instance

func NewTiKVFailover added in v0.2.0

func NewTiKVFailover(tikvFailoverPeriod time.Duration) Failover

NewTiKVFailover returns a tikv Failover

type FakePDMemberManager added in v0.4.0

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

func NewFakePDMemberManager added in v0.4.0

func NewFakePDMemberManager() *FakePDMemberManager

func (*FakePDMemberManager) SetSyncError added in v0.4.0

func (fpmm *FakePDMemberManager) SetSyncError(err error)

func (*FakePDMemberManager) Sync added in v0.4.0

type FakeTiDBMemberManager added in v0.4.0

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

func NewFakeTiDBMemberManager added in v0.4.0

func NewFakeTiDBMemberManager() *FakeTiDBMemberManager

func (*FakeTiDBMemberManager) SetSyncError added in v0.4.0

func (ftmm *FakeTiDBMemberManager) SetSyncError(err error)

func (*FakeTiDBMemberManager) Sync added in v0.4.0

type FakeTiKVMemberManager added in v0.4.0

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

func NewFakeTiKVMemberManager added in v0.4.0

func NewFakeTiKVMemberManager() *FakeTiKVMemberManager

func (*FakeTiKVMemberManager) SetSyncError added in v0.4.0

func (ftmm *FakeTiKVMemberManager) SetSyncError(err error)

func (*FakeTiKVMemberManager) Sync added in v0.4.0

type OrphanPodsCleaner added in v1.0.0

type OrphanPodsCleaner interface {
	Clean(*v1alpha1.TidbCluster) (map[string]string, error)
}

OrphanPodsCleaner implements the logic for cleaning the orphan pods(has no pvc)

In scaling out and failover, we will try to delete the old PVC to prevent it from being used by the new pod. However, the PVC might not be deleted immediately in the apiserver because of finalizers (e.g. kubernetes.io/pvc-protection) and the statefulset controller may not have received PVC delete event when it tries to create the new replica and the new pod will be pending forever because no PVC to use. We need to clean these orphan pods and let the statefulset controller to create PVC(s) for them.

https://github.com/kubernetes/kubernetes/blob/84fe3db5cf58bf0fc8ff792b885465ceaf70a435/pkg/controller/statefulset/stateful_pod_control.go#L175-L199

func NewFakeOrphanPodsCleaner added in v1.0.0

func NewFakeOrphanPodsCleaner() OrphanPodsCleaner

NewFakeOrphanPodsCleaner returns a fake orphan pods cleaner

func NewOrphanPodsCleaner added in v1.0.0

NewOrphanPodsCleaner returns a OrphanPodsCleaner

type PVCCleanerInterface added in v1.0.1

type PVCCleanerInterface interface {
	Clean(*v1alpha1.TidbCluster) (map[string]string, error)
}

PVCCleaner implements the logic for cleaning the pvc related resource

func NewFakePVCCleaner added in v1.0.1

func NewFakePVCCleaner() PVCCleanerInterface

NewFakePVCCleaner returns a fake PVC cleaner

func NewRealPVCCleaner added in v1.0.1

NewRealPVCCleaner returns a realPVCCleaner

type Scaler

type Scaler interface {
	// ScaleOut scales out the cluster
	ScaleOut(*v1alpha1.TidbCluster, *apps.StatefulSet, *apps.StatefulSet) error
	// ScaleIn scales in the cluster
	ScaleIn(*v1alpha1.TidbCluster, *apps.StatefulSet, *apps.StatefulSet) error
}

Scaler implements the logic for scaling out or scaling in the cluster.

func NewFakePDScaler

func NewFakePDScaler() Scaler

NewFakePDScaler returns a fake Scaler

func NewFakeTiKVScaler

func NewFakeTiKVScaler() Scaler

NewFakeTiKVScaler returns a fake tikv Scaler

func NewPDScaler

NewPDScaler returns a Scaler

func NewTiKVScaler

NewTiKVScaler returns a tikv Scaler

type SvcConfig

type SvcConfig struct {
	Name       string
	Port       int32
	SvcLabel   func(label.Label) label.Label
	MemberName func(clusterName string) string
	Headless   bool
}

SvcConfig corresponds to a K8s service

type Upgrader added in v0.2.0

type Upgrader interface {
	// Upgrade upgrade the cluster
	Upgrade(*v1alpha1.TidbCluster, *apps.StatefulSet, *apps.StatefulSet) error
}

Upgrader implements the logic for upgrading the tidb cluster.

func NewFakePDUpgrader added in v0.2.0

func NewFakePDUpgrader() Upgrader

NewFakePDUpgrader returns a fakePDUpgrader

func NewFakeTiDBUpgrader added in v0.2.0

func NewFakeTiDBUpgrader() Upgrader

NewFakeTiDBUpgrader returns a fake tidb upgrader

func NewFakeTiKVUpgrader added in v0.2.0

func NewFakeTiKVUpgrader() Upgrader

NewFakeTiKVUpgrader returns a fake tikv upgrader

func NewPDUpgrader added in v0.2.0

func NewPDUpgrader(pdControl pdapi.PDControlInterface,
	podControl controller.PodControlInterface,
	podLister corelisters.PodLister) Upgrader

NewPDUpgrader returns a pdUpgrader

func NewTiDBUpgrader added in v0.2.0

func NewTiDBUpgrader(tidbControl controller.TiDBControlInterface, podLister corelisters.PodLister) Upgrader

NewTiDBUpgrader returns a tidb Upgrader

func NewTiKVUpgrader added in v0.2.0

func NewTiKVUpgrader(pdControl pdapi.PDControlInterface,
	podControl controller.PodControlInterface,
	podLister corelisters.PodLister) Upgrader

NewTiKVUpgrader returns a tikv Upgrader

Jump to

Keyboard shortcuts

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