Documentation ¶
Index ¶
- type Backends
- func (b *Backends) Create(sp utils.ServicePort, hcLink string) (*composite.BackendService, error)
- func (b *Backends) Delete(name string) (err error)
- func (b *Backends) Get(name string, version meta.Version) (*composite.BackendService, error)
- func (b *Backends) GetLocalSnapshot() []string
- func (b *Backends) Health(name string) string
- func (b *Backends) List() ([]interface{}, error)
- func (b *Backends) Update(be *composite.BackendService) error
- type BalancingMode
- type FakeProbeProvider
- type GroupKey
- type Linker
- type NEGGetter
- type Pool
- type ProbeProvider
- type Syncer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Backends ¶
type Backends struct {
// contains filtered or unexported fields
}
Backends handles CRUD operations for backends.
func NewPool ¶ added in v1.4.0
NewPool returns a new backend pool. - cloud: implements BackendServices - namer: procudes names for backends. - resyncWithCloud: if true, periodically syncs with cloud resources.
func (*Backends) Create ¶ added in v1.4.0
func (b *Backends) Create(sp utils.ServicePort, hcLink string) (*composite.BackendService, error)
Create implements Pool.
func (*Backends) GetLocalSnapshot ¶ added in v1.4.0
GetLocalSnapshot implements Pool.
type BalancingMode ¶
type BalancingMode string
BalancingMode represents the loadbalancing configuration of an individual Backend in a BackendService. This is *effectively* a cluster wide setting since you can't mix modes across Backends pointing to the same IG, and you can't have a single node in more than 1 loadbalanced IG.
const ( // Rate balances incoming requests based on observed RPS. // As of this writing, it's the only balancing mode supported by GCE's // internal LB. This setting doesn't make sense for Kubernetes clusters // because requests can get proxied between instance groups in different // zones by kube-proxy without GCE even knowing it. Setting equal RPS on // all IGs should achieve roughly equal distribution of requests. Rate BalancingMode = "RATE" // Utilization balances incoming requests based on observed utilization. // This mode is only useful if you want to divert traffic away from IGs // running other compute intensive workloads. Utilization statistics are // aggregated per instances, not per container, and requests can get proxied // between instance groups in different zones by kube-proxy without GCE even // knowing about it. Utilization BalancingMode = "UTILIZATION" // Connections balances incoming requests based on a connection counter. // This setting currently doesn't make sense for Kubernetes clusters, // because we use NodePort Services as HTTP LB backends, so GCE's connection // counters don't accurately represent connections per container. Connections BalancingMode = "CONNECTION" )
type FakeProbeProvider ¶
type FakeProbeProvider struct {
// contains filtered or unexported fields
}
FakeProbeProvider implements the probeProvider interface for tests.
func NewFakeProbeProvider ¶
func NewFakeProbeProvider(probes map[utils.ServicePort]*api_v1.Probe) *FakeProbeProvider
NewFakeProbeProvider returns a struct which satisfies probeProvider interface
func (*FakeProbeProvider) GetProbe ¶
func (pp *FakeProbeProvider) GetProbe(port utils.ServicePort) (*api_v1.Probe, error)
GetProbe returns the probe for a given nodePort
type GroupKey ¶ added in v1.4.0
GroupKey represents a single group for a backend. The implementation of this Group could be InstanceGroup or NEG.
type Linker ¶ added in v1.4.0
type Linker interface { // Link a BackendService to its groups. Link(sp utils.ServicePort, groups []GroupKey) error }
Linker is an interface to link backends with their associated groups.
func NewInstanceGroupLinker ¶ added in v1.4.0
type NEGGetter ¶
type NEGGetter interface {
GetNetworkEndpointGroup(name string, zone string) (*computebeta.NetworkEndpointGroup, error)
}
NEGGetter is an interface to retrieve NEG object
type Pool ¶ added in v1.4.0
type Pool interface { // Get a composite BackendService given a required version. Get(name string, version meta.Version) (*composite.BackendService, error) // Create a composite BackendService and returns it. Create(sp utils.ServicePort, hcLink string) (*composite.BackendService, error) // Update a BackendService given the composite type. Update(be *composite.BackendService) error // Delete a BackendService given its name. Delete(name string) error // Get the health of a BackendService given its name. Health(name string) string // Get a list of BackendService names currently in this pool. GetLocalSnapshot() []string }
Pool is an interface to perform CRUD operations on a pool of GCE Backend Services.
type ProbeProvider ¶
type ProbeProvider interface {
GetProbe(sp utils.ServicePort) (*api_v1.Probe, error)
}
ProbeProvider retrieves a probe struct given a nodePort
type Syncer ¶ added in v1.4.0
type Syncer interface { // Init an implementation of ProbeProvider. Init(p ProbeProvider) // Sync a BackendService. Implementations should only create the BackendService // but not its groups. Sync(svcPorts []utils.ServicePort) error // GC garbage collects unused BackendService's GC(svcPorts []utils.ServicePort) error // Status returns the status of a BackendService given its name. Status(name string) string // Shutdown cleans up all BackendService's previously synced. Shutdown() error }
Syncer is an interface to sync Kubernetes services to GCE BackendServices.
func NewBackendSyncer ¶ added in v1.4.0
func NewBackendSyncer( backendPool Pool, healthChecker healthchecks.HealthChecker, namer *utils.Namer, backendConfigEnabled bool) Syncer