Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BackendIDByServiceIDSet ¶
type BackendIDByServiceIDSet map[uint16]map[loadbalancer.BackendID]struct{} // svc ID => backend ID
BackendIDByServiceIDSet is the type of a set for checking whether a backend belongs to a given service
type LBMap ¶
type LBMap interface {
UpsertService(*UpsertServiceParams) error
UpsertMaglevLookupTable(uint16, map[string]*loadbalancer.Backend, bool) error
IsMaglevLookupTableRecreated(bool) bool
DeleteService(loadbalancer.L3n4AddrID, int, bool, loadbalancer.SVCNatPolicy) error
AddBackend(*loadbalancer.Backend, bool) error
UpdateBackendWithState(*loadbalancer.Backend) error
DeleteBackendByID(loadbalancer.BackendID) error
AddAffinityMatch(uint16, loadbalancer.BackendID) error
DeleteAffinityMatch(uint16, loadbalancer.BackendID) error
UpdateSourceRanges(uint16, []*cidr.CIDR, []*cidr.CIDR, bool) error
DumpServiceMaps() ([]*loadbalancer.SVC, []error)
DumpBackendMaps() ([]*loadbalancer.Backend, error)
DumpAffinityMatches() (BackendIDByServiceIDSet, error)
DumpSourceRanges(bool) (SourceRangeSetByServiceID, error)
}
LBMap is the interface describing methods for manipulating service maps.
type NodeAddressing ¶
type NodeAddressing interface {
IPv6() NodeAddressingFamily
IPv4() NodeAddressingFamily
}
NodeAddressing implements addressing of a node
type NodeAddressingFamily ¶
type NodeAddressingFamily interface {
// Router is the address that will act as the router on each node where
// an agent is running on. Endpoints have a default route that points
// to this address.
Router() net.IP
// PrimaryExternal is the primary external address of the node. Nodes
// must be able to reach each other via this address.
PrimaryExternal() net.IP
// AllocationCIDR is the CIDR used for IP allocation of all endpoints
// on the node
AllocationCIDR() *cidr.CIDR
// LocalAddresses lists all local addresses
LocalAddresses() ([]net.IP, error)
// LoadBalancerNodeAddresses lists all addresses on which HostPort and
// NodePort services should be responded to
LoadBalancerNodeAddresses() []net.IP
}
NodeAddressingFamily is the node addressing information for a particular address family
type UpsertServiceParams ¶
type UpsertServiceParams struct {
ID uint16
IP net.IP
Port uint16
// PreferredBackends is a subset of ActiveBackends
// Note: this is only used in clustermesh with service affinity annotation.
PreferredBackends map[string]*loadbalancer.Backend
ActiveBackends map[string]*loadbalancer.Backend
NonActiveBackends []loadbalancer.BackendID
PrevBackendsCount int
IPv6 bool
Type loadbalancer.SVCType
NatPolicy loadbalancer.SVCNatPolicy
ExtLocal bool
IntLocal bool
Scope uint8
SessionAffinity bool
SessionAffinityTimeoutSec uint32
CheckSourceRange bool
UseMaglev bool
L7LBProxyPort uint16 // Non-zero for L7 LB services
Name loadbalancer.ServiceName // Fully qualified name of the service
LoopbackHostport bool
}
func (*UpsertServiceParams) GetOrderedBackends ¶
func (p *UpsertServiceParams) GetOrderedBackends() []loadbalancer.BackendID
GetOrderedBackends returns an ordered list of backends with all the sorted preferred backend followed by active and non-active backends. Encapsulates logic to be also used in unit tests.
Click to show internal directories.
Click to hide internal directories.