Kubernetes Kube expose,对任何节点ip的请求似乎都命中了正确的pod
我一直在摆弄Kubernetes,有一个由centos主机(3个节点,1个主节点)组成的小型实验室集群正在运行Kubernetes Kube expose,对任何节点ip的请求似乎都命中了正确的pod,kubernetes,Kubernetes,我一直在摆弄Kubernetes,有一个由centos主机(3个节点,1个主节点)组成的小型实验室集群正在运行 $ kubectl get nodes NAME STATUS AGE centos-kube-minion-1 Ready 2d centos-kube-minion-2 Ready 2d centos-kube-minion-3 Ready 2d 我已经设法在我的lab env()中学习
$ kubectl get nodes
NAME STATUS AGE
centos-kube-minion-1 Ready 2d
centos-kube-minion-2 Ready 2d
centos-kube-minion-3 Ready 2d
我已经设法在我的lab env()中学习了交互式教程
我已经讲到了演示应用程序的外部公开部分(模块4第1步,共3步):
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.
实际吊舱在minion-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进行了调整,以确保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
所以我的问题是:这是否如预期的那样有效(我怀疑是的)?(如果是,有人能解释/链接到魔法解释吗?是的,它按预期工作:
nodePort
在同一端口上的所有节点上公开服务
基本上,服务是运行应用程序的Pod的代理。KubeProxy在每个节点上运行,因此当您指定nodePort时,每个节点都会收到通知,将来自定义端口的流量重定向到服务,服务通过API知道Pod的位置
是,它按预期工作:
nodePort
在同一端口上的所有节点上公开服务
基本上,服务是运行应用程序的Pod的代理。KubeProxy在每个节点上运行,因此当您指定nodePort时,每个节点都会收到通知,将来自定义端口的流量重定向到服务,服务通过API知道Pod的位置
$ 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
$ 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