服务和节点端口的k8s 1.10和1.13之间有什么区别

时间:2019-05-16 09:08:46

标签: kubernetes

我有两个kubernetes环境。一个是v1.10.4,另一个是v1.13.5。 当我将完全相同的服务yaml文件部署到这两个环境中并使用curl命令检查nodeport时,我无法从1.13.5版本环境获得响应。 服务yaml文件在两个环境下都公开了nodeport:31218

在1.10版本以下,我可以使用curl命令检查服务节点端口并获得响应。

root@k8s-v110:~# curl -XGET localhost:31218/consumers/admin/api_key
{"total":1,"data":[{"created_at":1557977118000,"main_key":true,"enabled":true,"ref_role":1,"id":"6ec7c50e02ce","expired_time":1573529118000,"key":"5c9e9b3c5066","consumer_id":"b9eb389a3c59"}]}

在1.13版本以下,如果我使用localhost进行curl命令,直到按ctrl + c时我都没有得到任何响应

k8s-v113 [~] [root] # curl -XGET localhost:31218/consumers/admin/api_key

k8s-v113 [~] [root] # curl -XGET 10.111.33.10:31218/consumers/admin/api_key
{"total":1,"data":[{"created_at":1557906877000,"main_key":true,"enabled":true,"ref_role":1,"id":"68b629a3faeb","expired_time":1573458877000,"key":"60eee61045bc","consumer_id":"e0f2d6bf66ce"}]}

我只是想知道k8s是否有任何增强。因此,我不能直接使用localhost吗?

1 个答案:

答案 0 :(得分:0)

NodePort上没有任何更改。但是,这两个群集的配置可能有所不同,特别是版本1.13的群集,这样kube-proxy不会绑定到本地主机(127.0.0.1),而只能绑定到特定的网络接口。由于它是负责NodePort的组件。您可以在kube-proxy上检查--nodeport-addresses参数以查看其绑定到的ip。如果未指定或0.0.0.0,它将绑定到所有接口,问题可能出在其他地方。

还要检查localhost是否通过127.0.0.1正确地解析为nslookup localhost,并尝试将curlinging 127.0.0.1代替:

curl -XGET 127.0.0.1:31218/consumers/admin/api_key