我们正在尝试手动设置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
现在,我们可以启动集群,并且工作人员可以加入控制器节点。
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"}
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“。
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):
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连接到端口时,就像下面这样,直接连接到工作节点。我们会间歇性地超时:
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
期待关于我们如何调试或修复这个问题的建议或指导。
发布于 2019-12-04 18:41:41
我建议您使用网络故障排除工具,例如:tcpdump、netbox或Satellite。看看:kubernetes-networking-troubleshooting。
也请注意有关Source IP for Services with Type=NodePort的信息。
您也可以尝试使用wave:firekube以不同的方式安装Kubernetes。
https://stackoverflow.com/questions/59154093
复制相似问题