首页 > 解决方案 > 假设 iptables 代理问题,如何修复 kube-proxy 未知代理模式“”?

问题描述

我是 K8s 的新手,正在努力解决 kube-proxy 的一些问题。我有一个需要公开部署的服务。一切似乎都是正确的,但它并没有暴露它。我在 kube-proxy 日志中发现了问题。

Unknown proxy mode "", assuming iptables proxy

命令 iptables-save | 没有输出 grep 主机名

我认为添加--proxy-mode到 kube-proxy 清单中可以解决我的问题,但找不到它。

我还尝试使用以下命令检查配置文件:

ps -ef | grep kube-proxy

输出:

root      1423 24476  0 12:12 pts/0    00:00:00 grep --color=auto kube-proxy
root      8424  8392  0 11:45 ?        00:00:00 /usr/local/bin/kube-proxy --config=/var/lib/kube-proxy/config.conf --hostname-override=
ip-10-0-0-100.us-west-2.compute.internal
root@ip-10-0-0-100:~# find /var/lib/kube-proxy/config.conf
find: ‘/var/lib/kube-proxy/config.conf’: No such file or directory
root@ip-10-0-0-100:~# find  /usr/local/bin/kube-proxy
find: ‘/usr/local/bin/kube-proxy’: No such file or directory

任何帮助我找到我的方式的线索将不胜感激。谢谢!

标签: kuberneteskube-proxy

解决方案


原因之一可能是没有安装网络插件。

就我而言,当我收到以下错误时,我想检查已安装的 CNI 插件。

Unknown proxy mode "", assuming iptables proxy
  • 使用以下命令检查已安装的 CNI 插件,

    $ ls /etc/cni/net.d
    
  • 假设,它是一个weave-net. 然后我们必须寻找为这个插件创建的对象k get all -n kube-system。就我而言,我没有找到为编织网创建的任何对象。因此,我刚刚使用以下命令安装了 weave,

    $ kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
    

还有一件事要记住,

/var/lib/kube-proxy/config.confkube-proxy pod内的安装位置。查看名为 kube-proxy 的 ConfigMap 的详细信息。

kubectl describe configmap kube-proxy -n kube-system

推荐阅读