首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >服务间歇性超时(NodePort)

服务间歇性超时(NodePort)
EN

Stack Overflow用户
提问于 2019-12-03 17:39:00
回答 1查看 668关注 0票数 2

我们正在尝试手动设置kubernetes集群,其中控制器和主机运行在三个不同的数据中心。

数据子网: ControllerIp: 10.0.1.11工作者子网: 10.0.2.0/24

数据中心B: ControllerIp: 10.1.1.11工作者子网: 10.1.2.0/24

数据中心C: ControllerIp: 10.2.1.11工作者子网: 10.2.2.0/24

现在,我们可以启动集群,并且工作人员可以加入控制器节点。

代码语言:javascript
运行
复制
root@ip-10-0-1-11:/# kubectl get componentstatus
NAME                 STATUS    MESSAGE             ERROR
controller-manager   Healthy   ok
scheduler            Healthy   ok
etcd-0               Healthy   {"health":"true"}
代码语言:javascript
运行
复制
root@ip-10-0-1-11:/# kubectl get nodes
NAME                            STATUS   ROLES    AGE   VERSION
worker-30838.example.com   Ready    <none>   15h   v1.15.3
worker-9120.example.com    Ready    <none>   15h   v1.15.3

我们已经创建了一个带有5个副本集的示例服务"hello-world“。

代码语言:javascript
运行
复制
kubectl apply -f https://k8s.io/examples/service/load-balancer-example.yaml
root@ip-10-0-1-11:/# kubectl get deployments
NAME          READY   UP-TO-DATE   AVAILABLE   AGE
hello-world   5/5     5            5           8m30s
nginx         1/1     1            1           15h

部署后,我们创建了服务(NodePort):

代码语言:javascript
运行
复制
root@ip-10-0-1-11:/# kubectl expose deployment hello-world --type=NodePort --name=my-service
root@ip-10-0-1-11:/# kubectl get svc
NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   10.32.0.1     <none>        443/TCP          15h
my-service   NodePort    10.32.0.145   <none>        8080:30960/TCP   9m2s

现在,当我们尝试使用NodePort连接到端口时,就像下面这样,直接连接到工作节点。我们会间歇性地超时:

代码语言:javascript
运行
复制
root@ip-10-0-1-11:/# curl http://10.0.2.31:30960




^C
root@ip-10-0-1-11:/# curl http://10.0.2.31:30960
^C
root@ip-10-0-1-11:/# curl http://10.0.2.31:30960
Hello Kubernetes!root@ip-10-0-1-11:/# curl http://10.0.2.31:30960



^C
root@ip-10-0-1-11:/# curl http://10.0.2.31:30960





^C
root@ip-10-0-1-11:/# curl http://10.0.2.31:30960
Hello Kubernetes!root@ip-10-0-1-11:/#
root@ip-10-0-1-11:/#
root@ip-10-0-1-11:/#
root@ip-10-0-1-11:/#
root@ip-10-0-1-11:/# ^C
root@ip-10-0-1-11:/# curl http://10.0.2.31:30960



^C
root@ip-10-0-1-11:/# curl http://10.0.2.31:30960
^C
root@ip-10-0-1-11:/# curl http://10.1.2.41:30960




^C
root@ip-10-0-1-11:/# curl http://10.1.2.41:30960
Hello Kubernetes!root@ip-10-0-1-11:/#
root@ip-10-0-1-11:/#
root@ip-10-0-1-11:/# curl http://10.1.2.41:30960
Hello Kubernetes!root@ip-10-0-1-11:/#
root@ip-10-0-1-11:/#
root@ip-10-0-1-11:/# curl http://10.1.2.41:30960
Hello Kubernetes!root@ip-10-0-1-11:/#
root@ip-10-0-1-11:/#
root@ip-10-0-1-11:/#
root@ip-10-0-1-11:/# curl http://10.1.2.41:30960
curl: (7) Failed to connect to 10.1.2.41 port 30960: Connection timed out

期待关于我们如何调试或修复这个问题的建议或指导。

EN

回答 1

Stack Overflow用户

发布于 2019-12-04 18:41:41

我建议您使用网络故障排除工具,例如:tcpdumpnetboxSatellite。看看:kubernetes-networking-troubleshooting

也请注意有关Source IP for Services with Type=NodePort的信息。

您也可以尝试使用wave:firekube以不同的方式安装Kubernetes。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59154093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档