【问题标题】:How to find which mode kube-proxy is running in如何找到 kube-proxy 正在运行的模式
【发布时间】:2021-06-19 02:18:20
【问题描述】:

默认情况下,当配置中没有指定值时,kube-proxy 可能运行在 iptables 或用户空间模式:

--proxy-mode ProxyMode

使用哪种代理模式:“userspace”(旧)或“iptables”(更快)或“ipvs”或“内核空间”(Windows)。 如果为空,请使用最可用的代理(当前为 iptables)。如果选择了 iptables 代理,无论如何,但系统的内核或 iptables 版本不足,这总是回退到用户空间代理

doc

由于用户空间和iptables模式似乎都在节点上创建iptables规则,有没有可靠的方法来找出kube-proxy默认的代理模式?

【问题讨论】:

    标签: kubernetes kube-proxy


    【解决方案1】:

    kube-proxy 提出的 Mode 在 kube-proxy 日志文件中提到。

    W0322 08:09:44.312816       1 server_others.go:578] Unknown proxy mode "", assuming iptables proxy
    I0322 08:09:44.313052       1 server_others.go:185] Using iptables Proxier.
    

    签入代码https://github.com/kubernetes/kubernetes/blob/master/cmd/kube-proxy/app/server_others.go

    
    func getProxyMode(proxyMode string, canUseIPVS bool, kcompat iptables.KernelCompatTester) string {
        switch proxyMode {
        case proxyModeUserspace:
            return proxyModeUserspace
        case proxyModeIPTables:
            return tryIPTablesProxy(kcompat)
        case proxyModeIPVS:
            return tryIPVSProxy(canUseIPVS, kcompat)
        }
        klog.Warningf("Unknown proxy mode %q, assuming iptables proxy", proxyMode)
        return tryIPTablesProxy(kcompat)
    }
    
    func tryIPTablesProxy(kcompat iptables.KernelCompatTester) string {
        // guaranteed false on error, error only necessary for debugging
        useIPTablesProxy, err := iptables.CanUseIPTablesProxier(kcompat)
        if err != nil {
            utilruntime.HandleError(fmt.Errorf("can't determine whether to use iptables proxy, using userspace proxier: %v", err))
            return proxyModeUserspace
        }
        if useIPTablesProxy {
            return proxyModeIPTables
        }
        // Fallback.
        klog.V(1).Infof("Can't use iptables proxy, using userspace proxier")
        return proxyModeUserspace
    }
    
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-04
      • 2020-06-16
      • 2020-05-30
      • 1970-01-01
      • 2021-03-09
      • 2017-08-06
      • 1970-01-01
      • 2021-04-24
      相关资源
      最近更新 更多