mirror of https://github.com/k3s-io/k3s
parent
8378f7bcb8
commit
8b10712192
|
@ -100,8 +100,10 @@ type Options struct {
|
|||
ConfigFile string
|
||||
// WriteConfigTo is the path where the default configuration will be written.
|
||||
WriteConfigTo string
|
||||
// CleanupAndExit, when true, makes the proxy server clean up iptables, ipvs, etc rules, then exit.
|
||||
// CleanupAndExit, when true, makes the proxy server clean up iptables rules, then exit.
|
||||
CleanupAndExit bool
|
||||
// CleanupIPVS, when true, makes the proxy server clean up ipvs rules before running.
|
||||
CleanupIPVS bool
|
||||
// WindowsService should be set to true if kube-proxy is running as a service on Windows.
|
||||
// Its corresponding flag only gets registered in Windows builds
|
||||
WindowsService bool
|
||||
|
@ -141,7 +143,7 @@ func (o *Options) AddFlags(fs *pflag.FlagSet) {
|
|||
fs.BoolVar(&o.CleanupAndExit, "cleanup-iptables", o.CleanupAndExit, "If true cleanup iptables and ipvs rules and exit.")
|
||||
fs.MarkDeprecated("cleanup-iptables", "This flag is replaced by --cleanup.")
|
||||
fs.BoolVar(&o.CleanupAndExit, "cleanup", o.CleanupAndExit, "If true cleanup iptables and ipvs rules and exit.")
|
||||
fs.MarkDeprecated("cleanup-ipvs", "This flag is replaced by --cleanup.")
|
||||
fs.BoolVar(&o.CleanupIPVS, "cleanup-ipvs", o.CleanupIPVS, "If true make kube-proxy cleanup ipvs rules before running. Default is true")
|
||||
|
||||
// All flags below here are deprecated and will eventually be removed.
|
||||
|
||||
|
@ -201,6 +203,7 @@ func NewOptions() *Options {
|
|||
metricsPort: ports.ProxyStatusPort,
|
||||
scheme: scheme.Scheme,
|
||||
codecs: scheme.Codecs,
|
||||
CleanupIPVS: true,
|
||||
errCh: make(chan error),
|
||||
}
|
||||
}
|
||||
|
@ -496,6 +499,7 @@ type ProxyServer struct {
|
|||
ProxyMode string
|
||||
NodeRef *v1.ObjectReference
|
||||
CleanupAndExit bool
|
||||
CleanupIPVS bool
|
||||
MetricsBindAddress string
|
||||
EnableProfiling bool
|
||||
OOMScoreAdj *int32
|
||||
|
@ -553,7 +557,7 @@ func (s *ProxyServer) Run() error {
|
|||
if s.CleanupAndExit {
|
||||
encounteredError := userspace.CleanupLeftovers(s.IptInterface)
|
||||
encounteredError = iptables.CleanupLeftovers(s.IptInterface) || encounteredError
|
||||
encounteredError = ipvs.CleanupLeftovers(s.IpvsInterface, s.IptInterface, s.IpsetInterface) || encounteredError
|
||||
encounteredError = ipvs.CleanupLeftovers(s.IpvsInterface, s.IptInterface, s.IpsetInterface, s.CleanupIPVS) || encounteredError
|
||||
if encounteredError {
|
||||
return errors.New("encountered an error while tearing down rules.")
|
||||
}
|
||||
|
|
|
@ -590,21 +590,22 @@ func cleanupIptablesLeftovers(ipt utiliptables.Interface) (encounteredError bool
|
|||
}
|
||||
|
||||
// CleanupLeftovers clean up all ipvs and iptables rules created by ipvs Proxier.
|
||||
func CleanupLeftovers(ipvs utilipvs.Interface, ipt utiliptables.Interface, ipset utilipset.Interface) (encounteredError bool) {
|
||||
// Return immediately when ipvs interface is nil - Probably initialization failed in somewhere.
|
||||
if ipvs == nil {
|
||||
return true
|
||||
func CleanupLeftovers(ipvs utilipvs.Interface, ipt utiliptables.Interface, ipset utilipset.Interface, cleanupIPVS bool) (encounteredError bool) {
|
||||
if cleanupIPVS {
|
||||
// Return immediately when ipvs interface is nil - Probably initialization failed in somewhere.
|
||||
if ipvs == nil {
|
||||
return true
|
||||
}
|
||||
encounteredError = false
|
||||
err := ipvs.Flush()
|
||||
if err != nil {
|
||||
klog.Errorf("Error flushing IPVS rules: %v", err)
|
||||
encounteredError = true
|
||||
}
|
||||
}
|
||||
encounteredError = false
|
||||
err := ipvs.Flush()
|
||||
if err != nil {
|
||||
klog.Errorf("Error flushing IPVS rules: %v", err)
|
||||
encounteredError = true
|
||||
}
|
||||
|
||||
// Delete dummy interface created by ipvs Proxier.
|
||||
nl := NewNetLinkHandle(false)
|
||||
err = nl.DeleteDummyDevice(DefaultDummyDevice)
|
||||
err := nl.DeleteDummyDevice(DefaultDummyDevice)
|
||||
if err != nil {
|
||||
klog.Errorf("Error deleting dummy device %s created by IPVS proxier: %v", DefaultDummyDevice, err)
|
||||
encounteredError = true
|
||||
|
|
Loading…
Reference in New Issue