Kubernetes服务有时无响应

时间:2018-12-15 09:56:36

标签: kubernetes

我的集群包含1个具有3个工作程序节点的主服务器,其中创建了1个具有2个副本集和1个服务的POD。当我尝试通过命令curl <ClusterIP>:<port>从2个工作节点访问服务时,有时它可以反馈Nginx的欢迎,但是有时它会卡住,连接被拒绝并超时。

我检查了Kubernetes服务,POD和端点都很好,但是不知道发生了什么。请告知。

vagrant@k8s-master:~/_projects/tmp1$ sudo kubectl get nodes -o wide
NAME          STATUS   ROLES    AGE   VERSION   INTERNAL-IP      EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
k8s-master    Ready    master   23d   v1.12.2   192.168.205.10   <none>        Ubuntu 16.04.4 LTS   4.4.0-139-generic   docker://17.3.2
k8s-worker1   Ready    <none>   23d   v1.12.2   192.168.205.11   <none>        Ubuntu 16.04.4 LTS   4.4.0-139-generic   docker://17.3.2
k8s-worker2   Ready    <none>   23d   v1.12.2   192.168.205.12   <none>        Ubuntu 16.04.4 LTS   4.4.0-139-generic   docker://17.3.2

vagrant@k8s-master:~/_projects/tmp1$ sudo kubectl get pod -o wide --all-namespaces
NAMESPACE     NAME                                    READY   STATUS    RESTARTS   AGE     IP               NODE          NOMINATED NODE
default       my-nginx-756f645cd7-pfdck               1/1     Running   0          5m23s   10.244.2.39      k8s-worker2   <none>
default       my-nginx-756f645cd7-xpbnp               1/1     Running   0          5m23s   10.244.1.40      k8s-worker1   <none>
kube-system   coredns-576cbf47c7-ljx68                1/1     Running   18         23d     10.244.0.38      k8s-master    <none>
kube-system   coredns-576cbf47c7-nwlph                1/1     Running   18         23d     10.244.0.39      k8s-master    <none>
kube-system   etcd-k8s-master                         1/1     Running   18         23d     192.168.205.10   k8s-master    <none>
kube-system   kube-apiserver-k8s-master               1/1     Running   18         23d     192.168.205.10   k8s-master    <none>
kube-system   kube-controller-manager-k8s-master      1/1     Running   18         23d     192.168.205.10   k8s-master    <none>
kube-system   kube-flannel-ds-54xnb                   1/1     Running   2          2d5h    192.168.205.12   k8s-worker2   <none>
kube-system   kube-flannel-ds-9q295                   1/1     Running   2          2d5h    192.168.205.11   k8s-worker1   <none>
kube-system   kube-flannel-ds-q25xw                   1/1     Running   2          2d5h    192.168.205.10   k8s-master    <none>
kube-system   kube-proxy-gkpwp                        1/1     Running   15         23d     192.168.205.11   k8s-worker1   <none>
kube-system   kube-proxy-gncjh                        1/1     Running   18         23d     192.168.205.10   k8s-master    <none>
kube-system   kube-proxy-m4jfm                        1/1     Running   15         23d     192.168.205.12   k8s-worker2   <none>
kube-system   kube-scheduler-k8s-master               1/1     Running   18         23d     192.168.205.10   k8s-master    <none>
kube-system   kubernetes-dashboard-77fd78f978-4r62r   1/1     Running   15         23d     10.244.1.38      k8s-worker1   <none>


vagrant@k8s-master:~/_projects/tmp1$ sudo kubectl get svc -o wide
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE   SELECTOR
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   23d   <none>
my-nginx     ClusterIP   10.98.9.75   <none>        80/TCP    75s   run=my-nginx

vagrant@k8s-master:~/_projects/tmp1$ sudo kubectl get endpoints
NAME         ENDPOINTS                       AGE
kubernetes   192.168.205.10:6443             23d
my-nginx     10.244.1.40:80,10.244.2.39:80   101s

1 个答案:

答案 0 :(得分:1)

这听起来很奇怪,但可能是您的一个豆荚正在为交通服务,而另一个豆荚却不在。您可以尝试脱壳:

$ kubectl exec -it my-nginx-756f645cd7-rs2w2 sh
$ kubectl exec -it my-nginx-756f645cd7-vwzrl sh

您可以查看他们是否正在侦听端口80:

$ curl localhost:80

您还可以查看您的服务是否具有两个端点10.244.2.28:8010.244.1.29:80

$ kubectl get ep my-nginx
$ kubectl get ep my-nginx -o=yaml

此外,尝试从一个节点连接到每个端点:

$ curl 10.244.2.28:80
$ curl 10.244.2.29:80