curl无法访问kubernetes服务-错误:没有到主机的路由

curl无法访问kubernetes服务-错误:没有到主机的路由,kubernetes,Kubernetes,由于某些原因,我无法卷曲我的服务或公开服务。下面的设置用于工作-不再 $ kubectl create deployment nginx --image=nginx $ kubectl expose deployment nginx --port=80 $ kubectl get svc,pods -o wide NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR s

由于某些原因,我无法卷曲我的服务或公开服务。下面的设置用于工作-不再

$ kubectl create deployment nginx --image=nginx
$ kubectl expose deployment nginx --port=80

$ kubectl get svc,pods -o wide
NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE    SELECTOR
service/nginx        ClusterIP   10.109.212.238   <none>        80/TCP    12m    app=nginx

NAME                            READY   STATUS    RESTARTS   AGE   IP          NODE               NOMINATED NODE   READINESS GATES
pod/nginx-866795cfb8-ff5zv      1/1     Running   0          13m   10.47.0.2   nebula-web01       <none>           <none>

有趣的是,我发现这个错误只出现在nebula-web01节点上。如果我在不同的节点上部署了相同的应用程序,例如nebula-web02和curl Service IP或Pod IP,那么应用程序将返回其内容。这让我觉得nebula-web01的设置肯定有问题

解决我问题的方法是在nebula-web01节点上重新启动docker和kubelet守护程序

$systemctl重新启动docker $systemctl重新启动kubelet 笔记 此外,您可以根据禁用防火墙和刷新iptables

$ curl 10.109.212.238
curl: (7) Failed connect to 10.109.212.238:80; No route to host

$ curl 10.47.0.2 
curl: (7) Failed connect to 10.47.0.2:80; No route to host