Documentation
¶
Index ¶
Constants ¶
const ( // FlagPersistent specify IPVS service session affinity FlagPersistent = 0x1 // FlagHashed specify IPVS service hash flag FlagHashed = 0x2 )
const ( // KernelModuleIPVS is the kernel module "ip_vs" KernelModuleIPVS string = "ip_vs" // KernelModuleIPVSRR is the kernel module "ip_vs_rr" KernelModuleIPVSRR string = "ip_vs_rr" // KernelModuleIPVSWRR is the kernel module "ip_vs_wrr" KernelModuleIPVSWRR string = "ip_vs_wrr" // KernelModuleIPVSSH is the kernel module "ip_vs_sh" KernelModuleIPVSSH string = "ip_vs_sh" // KernelModuleNfConntrackIPV4 is the module "nf_conntrack_ipv4" KernelModuleNfConntrackIPV4 string = "nf_conntrack_ipv4" // KernelModuleNfConntrack is the kernel module "nf_conntrack" KernelModuleNfConntrack string = "nf_conntrack" )
IPVS required kernel modules.
Variables ¶
This section is empty.
Functions ¶
func GetRequiredIPVSModules ¶ added in v1.16.0
GetRequiredIPVSModules returns the required ipvs modules for the given linux kernel version.
func IsRsGracefulTerminationNeeded ¶ added in v1.19.0
IsRsGracefulTerminationNeeded returns true if protocol requires graceful termination for the stale connections
Types ¶
type Interface ¶
type Interface interface {
// Flush clears all virtual servers in system. return occurred error immediately.
Flush() error
// AddVirtualServer creates the specified virtual server.
AddVirtualServer(*VirtualServer) error
// UpdateVirtualServer updates an already existing virtual server. If the virtual server does not exist, return error.
UpdateVirtualServer(*VirtualServer) error
// DeleteVirtualServer deletes the specified virtual server. If the virtual server does not exist, return error.
DeleteVirtualServer(*VirtualServer) error
// Given a partial virtual server, GetVirtualServer will return the specified virtual server information in the system.
GetVirtualServer(*VirtualServer) (*VirtualServer, error)
// GetVirtualServers lists all virtual servers in the system.
GetVirtualServers() ([]*VirtualServer, error)
// AddRealServer creates the specified real server for the specified virtual server.
AddRealServer(*VirtualServer, *RealServer) error
// GetRealServers returns all real servers for the specified virtual server.
GetRealServers(*VirtualServer) ([]*RealServer, error)
// DeleteRealServer deletes the specified real server from the specified virtual server.
DeleteRealServer(*VirtualServer, *RealServer) error
// UpdateRealServer updates the specified real server from the specified virtual server.
UpdateRealServer(*VirtualServer, *RealServer) error
// ConfigureTimeouts is the equivalent to running "ipvsadm --set" to configure tcp, tcpfin and udp timeouts
ConfigureTimeouts(time.Duration, time.Duration, time.Duration) error
}
Interface is an injectable interface for running ipvs commands. Implementations must be goroutine-safe.
type RealServer ¶
RealServer is an user-oriented definition of an IPVS real server in its entirety.
func (*RealServer) Equal ¶ added in v1.9.0
func (rs *RealServer) Equal(other *RealServer) bool
Equal check the equality of real server. We don't use struct == since it doesn't work because of slice.
func (*RealServer) String ¶
func (rs *RealServer) String() string
type ServiceFlags ¶
type ServiceFlags uint32
ServiceFlags is used to specify session affinity, ip hash etc.
type VirtualServer ¶
type VirtualServer struct {
Address net.IP
Protocol string
Port uint16
Scheduler string
Flags ServiceFlags
Timeout uint32
}
VirtualServer is an user-oriented definition of an IPVS virtual server in its entirety.
func (*VirtualServer) Equal ¶
func (svc *VirtualServer) Equal(other *VirtualServer) bool
Equal check the equality of virtual server. We don't use struct == since it doesn't work because of slice.
func (*VirtualServer) String ¶
func (svc *VirtualServer) String() string