我一直在與Kubernetes搞混,並且有一個小型的centos主機(3個節點,1個主節點)運行的實驗室集羣。Kube揭露,請求任何節點ip似乎擊中了正確的pod
$ kubectl get nodes
NAME STATUS AGE
centos-kube-minion-1 Ready 2d
centos-kube-minion-2 Ready 2d
centos-kube-minion-3 Ready 2d
我manged遵循互動教程在我的實驗室ENV(http://kubernetes.io/docs/tutorials/kubernetes-basics/expose-interactive/)。
我在您暴露演示程序外部(模塊4步驟1的3)的一部分抵:
$ kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080
Kubectl描述輸出如下:
$ kubectl describe services/kubernetes-bootcamp
Name: kubernetes-bootcamp
Namespace: default
Labels: run=kubernetes-bootcamp
Selector: run=kubernetes-bootcamp
Type: NodePort
IP: 10.254.224.254
Port: <unset> 8080/TCP
NodePort: <unset> 31686/TCP
Endpoints: 172.30.3.2:8080
Session Affinity: None
No events.
下一步在本教程中,需要在運行pod的節點dns名稱(或IP)和暴露的端口(我的情況爲31686)上捲曲。
我的/ etc/hosts文件看起來是這樣的:
$ cat etc/hosts
...
10.10.0.231 centos-kube-master
10.10.0.236 centos-kube-minion-1
10.10.0.232 centos-kube-minion-2
10.10.0.237 centos-kube-minion-3
和實際吊艙上,走狗-3上運行:
$ kubectl describe pod kubernetes-bootcamp-428840972-ukl15
Name: kubernetes-bootcamp-428840972-ukl15
Namespace: default
Node: centos-kube-minion-3/10.10.0.237
然而,(和這裏的實際問題),當我捲曲任何這些DNS條目和暴露的端口,我打了應用程序:
$ curl centos-kube-minion-1:31686
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-428840972-ukl15 | v=1
$ curl centos-kube-minion-2:31686
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-428840972-ukl15 | v=1
$ curl centos-kube-minion-3:31686
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-428840972-ukl15 | v=1
我也捲曲了實際的IP使sur DNS條目沒有發生任何瘋狂的事情。
$ curl 10.10.0.236:31686
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-428840972-ukl15 | v=1
$ curl 10.10.0.237:31686
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-428840972-ukl15 | v=1
$ curl 10.10.0.232:31686
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-428840972-ukl15 | v=1
所以我的問題是:這是按預期工作(我懷疑是)? (如果有的話,任何人都可以解釋/鏈接到對魔法的解釋嗎?)