daemon

package
v1.12.9 Latest Latest
Warning

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

Go to latest
Published: Mar 22, 2024 License: Apache-2.0 Imports: 71 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ServiceSet                 = "services"
	SubnetSet                  = "subnets"
	SubnetNatSet               = "subnets-nat"
	SubnetDistributedGwSet     = "subnets-distributed-gw"
	LocalPodSet                = "local-pod-ip-nat"
	OtherNodeSet               = "other-node"
	IPSetPrefix                = "ovn"
	NatOutGoingPolicySubnetSet = "subnets-nat-policy"
	NatOutGoingPolicyRuleSet   = "natpr-"
)
View Source
const (
	NAT                        = util.NAT
	MANGLE                     = util.Mangle
	Prerouting                 = util.Prerouting
	Postrouting                = util.Postrouting
	Output                     = util.Output
	OvnPrerouting              = util.OvnPrerouting
	OvnPostrouting             = util.OvnPostrouting
	OvnOutput                  = util.OvnOutput
	OvnMasquerade              = util.OvnMasquerade
	OvnNatOutGoingPolicy       = util.OvnNatOutGoingPolicy
	OvnNatOutGoingPolicySubnet = util.OvnNatOutGoingPolicySubnet
)
View Source
const (
	OnOutGoingNatMark     = "0x90001/0x90001"
	OnOutGoingForwardMark = "0x90002/0x90002"
	TProxyOutputMark      = util.TProxyOutputMark
	TProxyOutputMask      = util.TProxyOutputMask
	TProxyPreroutingMark  = util.TProxyPreroutingMark
	TProxyPreroutingMask  = util.TProxyPreroutingMask
)

Variables

This section is empty.

Functions

func DeleteNamedNs added in v1.12.0

func DeleteNamedNs(name string) error

DeleteNamed deletes a named network namespace ip netns del

func GetDefaultRouteDst added in v1.12.0

func GetDefaultRouteDst(protocol string) net.IPNet

func InitMetrics added in v1.7.0

func InitMetrics()

func InitMirror added in v1.7.0

func InitMirror(config *Configuration) error

func InitNodeGateway

func InitNodeGateway(config *Configuration) error

InitNodeGateway init ovn0

func InitOVSBridges added in v1.7.2

func InitOVSBridges() (map[string]string, error)

InitOVSBridges initializes OVS bridges

func RunServer

func RunServer(config *Configuration, controller *Controller)

RunServer runs the cniserver

Types

type Configuration

type Configuration struct {
	Iface                     string
	DPDKTunnelIface           string
	MTU                       int
	MSS                       int
	EnableMirror              bool
	MirrorNic                 string
	BindSocket                string
	OvsSocket                 string
	KubeConfigFile            string
	KubeClient                kubernetes.Interface
	KubeOvnClient             clientset.Interface
	NodeName                  string
	ServiceClusterIPRange     string
	ClusterRouter             string
	NodeSwitch                string
	EncapChecksum             bool
	EnablePprof               bool
	MacLearningFallback       bool
	PprofPort                 int
	NetworkType               string
	CniConfDir                string
	CniConfFile               string
	CniConfName               string
	DefaultProviderName       string
	DefaultInterfaceName      string
	ExternalGatewayConfigNS   string
	ExternalGatewaySwitch     string // provider network underlay vlan subnet
	EnableMetrics             bool
	EnableArpDetectIPConflict bool
	KubeletDir                string
	EnableVerboseConnCheck    bool
	TCPConnCheckPort          int
	UDPConnCheckPort          int
	EnableTProxy              bool
	OVSVsctlConcurrency       int32
	// contains filtered or unexported fields
}

Configuration is the daemon conf

func ParseFlags

func ParseFlags() *Configuration

ParseFlags will parse cmd args then init kubeClient and configuration TODO: validate configuration

func (*Configuration) Init added in v1.10.0

func (config *Configuration) Init(nicBridgeMappings map[string]string) error

type Controller

type Controller struct {
	ControllerRuntime
	// contains filtered or unexported fields
}

Controller watch pod and namespace changes to update iptables, ipset and ovs qos

func NewController

func NewController(config *Configuration, stopCh <-chan struct{}, podInformerFactory, nodeInformerFactory informers.SharedInformerFactory, kubeovnInformerFactory kubeovninformer.SharedInformerFactory) (*Controller, error)

NewController init a daemon controller

func (*Controller) Run

func (c *Controller) Run(stopCh <-chan struct{})

Run starts controller

func (*Controller) StartTProxyForwarding added in v1.12.0

func (c *Controller) StartTProxyForwarding()

func (*Controller) StartTProxyTCPPortProbe added in v1.12.0

func (c *Controller) StartTProxyTCPPortProbe()

type ControllerRuntime added in v1.10.0

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

ControllerRuntime represents runtime specific controller members

type NsHandle added in v1.12.0

type NsHandle int

NsHandle is a handle to a network namespace. It can be cast directly to an int and used as a file descriptor.

func ClosedNs added in v1.12.0

func ClosedNs() NsHandle

None gets an empty (closed) NsHandle.

func GetNs added in v1.12.0

func GetNs() (NsHandle, error)

Get gets a handle to the current threads network namespace.

func GetNsFromName added in v1.12.0

func GetNsFromName(name string) (NsHandle, error)

GetFromName gets a handle to a named network namespace such as one created by `ip netns add`.

func GetNsFromPath added in v1.12.0

func GetNsFromPath(path string) (NsHandle, error)

GetFromPath gets a handle to a network namespace identified by the path

func GetNsFromThread added in v1.12.0

func GetNsFromThread(pid, tid int) (NsHandle, error)

GetFromThread gets a handle to the network namespace of a given pid and tid.

Jump to

Keyboard shortcuts

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