【问题标题】:ipvsadm not showing any entry in kubeadm clusteripvsadm 未显示 kubeadm 集群中的任何条目
【发布时间】:2018-12-22 13:38:38
【问题描述】:

我已经安装了kubeadm 并创建了服务和pod:

packet@test:~$ kubectl get pod
NAME                                   READY     STATUS    RESTARTS   AGE
udp-server-deployment-6f87f5c9-466ft   1/1       Running   0          5m
udp-server-deployment-6f87f5c9-5j9rt   1/1       Running   0          5m
udp-server-deployment-6f87f5c9-g9wrr   1/1       Running   0          5m
udp-server-deployment-6f87f5c9-ntbkc   1/1       Running   0          5m
udp-server-deployment-6f87f5c9-xlbjq   1/1       Running   0          5m    

packet@test:~$ kubectl get service
NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)           AGE
kubernetes           ClusterIP   10.96.0.1       <none>        443/TCP           1h
udp-server-service   NodePort    10.102.67.0     <none>        10001:30001/UDP   6m

但我仍然无法访问 udp-server pod:

packet@test:~$ curl http://192.168.43.161:30001
curl: (7) Failed to connect to 192.168.43.161 port 30001: Connection refused 

在调试时我可以看到kube-proxy 正在运行但 IPVS 中没有条目

root@test:~# ps auxw | grep kube-proxy
root      4050  0.5  0.7  44340 29952 ?        Ssl  14:33   0:25 /usr/local/bin/kube-proxy --config=/var/lib/kube-proxy/config.conf
root      6094  0.0  0.0  14224   968 pts/1    S+   15:48   0:00 grep --color=auto kube-proxy

root@test:~# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

似乎ipvsadm中没有条目导致连接超时。

问候,兰吉斯

【问题讨论】:

    标签: sockets kubernetes udp kubectl kubeadm


    【解决方案1】:

    来自this issue(抛开负载均衡部分),

    externalIPsstatus.loadBalancer.ingress[].ip 在 IPVS 模式下似乎都被 kube-proxy 忽略了,因此外部流量完全无法路由。

    相比之下,iptables 模式下的 kube-proxy 为外部和负载均衡器 IP 创建 DNAT/SNAT 规则。

    因此,请检查添加网络插件(flannelCalico、...)是否会改善这种情况。

    或者查看cloudnativelabs/kube-router,它也是基于ipvs的。

    一种精简而强大的替代方案,可替代典型 Kubernetes 集群中使用的多个网络组件。
    所有这些都来自一个 DaemonSet/Binary。它没有变得更容易。

    【讨论】:

    • 我在用法兰绒
    • 我一定错过了你的问题。试试cloudnativelabs/kube-router 看看会不会更好。
    • ,我会尝试使用 kube-router 。我的问题是非常基本的要求。它真的不起作用。
    【解决方案2】:

    由于 curl 使用 tcp 连接,而 30001 是 udp 端口​​,它们不能一起工作,请尝试使用 udp 探测工具,例如 nmap。

    【讨论】:

    • 我已经做了更改,但仍然没有帮助 packet@test:~$ kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE example-service NodePort 10.110.129.206 10001: 30001/TCP 3s kubernetes ClusterIP 10.96.0.1 443/TCP 6m packet@test:~$ curl 192.168.1.105:30001 curl: (7) 无法连接到 192.168.1.105 端口 30001: 没有到主机的路由
    【解决方案3】:

    最初我使用虚拟机(在窗口上运行)创建了虚拟机(Linux 虚拟机),在这里我发现了这种类型的问题。

    现在我使用虚拟管理器(在 Linux 上运行)创建了 VM(Linux VM),在这个设置中没有问题,一切正常。

    如果有人告诉虚拟盒子有什么限制,那就太好了?

    【讨论】:

    猜你喜欢
    • 2017-08-27
    • 2020-08-05
    • 2020-04-07
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 2019-11-28
    • 1970-01-01
    相关资源
    最近更新 更多