kubernetes: k8s.io/kubernetes/pkg/util/ipvs Index | Files | Directories

package ipvs

import "k8s.io/kubernetes/pkg/util/ipvs"

Index

Package Files

ipvs.go ipvs_linux.go

Constants

const (
    // FlagPersistent specify IPVS service session affinity
    FlagPersistent = 0x1
    // FlagHashed specify IPVS service hash flag
    FlagHashed = 0x2
    // IPVSProxyMode is match set up cluster with ipvs proxy model
    IPVSProxyMode = "ipvs"
)
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.

func GetRequiredIPVSModules Uses

func GetRequiredIPVSModules(kernelVersion *version.Version) []string

GetRequiredIPVSModules returns the required ipvs modules for the given linux kernel version.

func IsRsGracefulTerminationNeeded Uses

func IsRsGracefulTerminationNeeded(proto string) bool

IsRsGracefulTerminationNeeded returns true if protocol requires graceful termination for the stale connections

type Interface Uses

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.

func New Uses

func New(exec utilexec.Interface) Interface

New returns a new Interface which will call ipvs APIs.

type Protocol Uses

type Protocol uint16

Protocol is the IPVS service protocol type

type RealServer Uses

type RealServer struct {
    Address      net.IP
    Port         uint16
    Weight       int
    ActiveConn   int
    InactiveConn int
}

RealServer is an user-oriented definition of an IPVS real server in its entirety.

func (*RealServer) Equal Uses

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 Uses

func (rs *RealServer) String() string

type ServiceFlags Uses

type ServiceFlags uint32

ServiceFlags is used to specify session affinity, ip hash etc.

type VirtualServer Uses

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 Uses

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 Uses

func (svc *VirtualServer) String() string

Directories

PathSynopsis
testing

Package ipvs imports 12 packages (graph) and is imported by 48 packages. Updated 2020-07-31. Refresh now. Tools for package owners.