【发布时间】:2017-09-25 14:02:24
【问题描述】:
我正在使用虚拟机虚拟机在我的笔记本电脑中设置一个示例 Kubernetes 集群。 使用 flannel 作为覆盖网络。我已经成功创建了一个主节点和一个节点。当我在节点中启动 pod 以部署 mongodb 容器时,pod 和容器已成功部署端点。服务也创建成功
在主人身上
[osboxes@kubemaster pods]$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
busybox 1/1 Running 0 3m 172.17.60.3 192.168.6.103
mongodb 1/1 Running 0 21m 172.17.60.2 192.168.6.103
[osboxes@kubemaster pods]$ kubectl get services -o wide
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
kubernetes 10.254.0.1 <none> 443/TCP 17d <none>
mongoservice 10.254.244.175 <none> 27017/TCP 47m name=mongodb
[osboxes@kubemaster pods]$ kubectl describe svc mongoservice
Name: mongoservice
Namespace: default
Labels: name=mongoservice
Selector: name=mongodb
Type: ClusterIP
IP: 10.254.244.175
Port: <unset> 27017/TCP
Endpoints: 172.17.60.2:27017
Session Affinity: None
使用 docker ps 在节点上
8707a465771b busybox "sh" 9 minutes ago Up 9minutes k8s_busybox.53e510d6_busybox_default_c4892314-cde3-11e6-8a53-08002700df07_492b1a89
bea9de4e05cf registry.access.redhat.com/rhel7/pod-infrastructure:latest "/pod" 9 minutes ago Up 9 minutes k8s_POD.ae8ee9ac_busybox_default_c4892314-cde3-11e6-8a53-08002700df07_2bffae46
eaff8dc1a360 mongo "/entrypoint.sh mongo" 28 minutes ago Up 28 minutes k8s_mongodb.d1eca71a_mongodb_default_240cd411-cde1-11e6-8a53-08002700df07_ef5a8bbe
6a90b06cd434 registry.access.redhat.com/rhel7/pod-infrastructure:latest "/pod" 28 minutes ago Up 28 minutes k8s_POD.7ce0ec0_mongodb_default_240cd411-cde1-11e6-8a53-08002700df07_11074b20
我可以连接到 mongodb 服务的唯一方法是在显示 “看起来您正试图在本机驱动程序端口上通过 HTTP 访问 MongoDB”的节点上运行 http://172.17.60.2:27017/。
问题是我无法从 master 或任何其他节点访问 mongodb 端点,至少访问与上述相同的 url。我有另一个 java webapp 容器将作为另一个节点中的 pod 运行,我需要让它交互,但这是下一步。我计划使用 env 变量进行 interpod 通信,并且还看到在节点中的容器上正确创建了环境变量。
我完成了这个http://kubernetes.io/docs/user-guide/debugging-services/ 并遵循了该过程,但无法使任何步骤起作用。
[osboxes@kubemaster pods]$ sudo kubectl run -i --tty busybox --image=busybox --generator="run-pod/v1"
Waiting for pod default/busybox to be running, status is Pending, pod ready: false
Waiting for pod default/busybox to be running, status is Pending, pod ready: false
If you don't see a command prompt, try pressing enter.
Error attaching, falling back to logs: dial tcp 192.168.6.103:10250: getsockopt: connection refused
Error from server: Get https://192.168.6.103:10250/containerLogs/default/busybox/busybox: dial tcp 192.168.6.103:10250: getsockopt: connection refused
[osboxes@kubemaster pods]$ curl 172.17.60.2:27017
curl: (7) Failed connect to 172.17.60.2:27017; No route to host
[osboxes@kubemaster pods]$ curl 10.254.244.175:27017
curl: (7) Failed connect to 10.254.244.175:27017; Connection timed out
[osboxes@kubemaster pods]$ kubectl exec -ti mongodb -c k8s_mongodb.d1eca71a_mongodb_default_240cd411-cde1-11e6-8a53-08002700df07_ef5a8bbe sh
Error from server: container k8s_mongodb.d1eca71a_mongodb_default_240cd411-cde1-11e6-8a53-08002700df07_ef5a8bbe is not valid for pod mongodb
[osboxes@kubemaster pods]$ kubectl exec -ti mongodb -c k8s_POD.7ce0ec0_mongodb_default_240cd411-cde1-11e6-8a53-08002700df07_11074b20 sh
Error from server: container k8s_POD.7ce0ec0_mongodb_default_240cd411-cde1-11e6-8a53-08002700df07_11074b20 is not valid for pod mongodb
[osboxes@kubemaster pods]$ kubectl exec -ti mongodb sh
Error from server: dial tcp 192.168.6.103:10250: getsockopt: connection refused
我怀疑尽管创建了 pod 和服务,但存在一些潜在的网络问题,但我不是网络人,所以无法弄清楚究竟是什么问题。请帮忙。
【问题讨论】:
标签: kubernetes