Kubernetes DNS/Endpoint

Kubernetes DNS/Endpoint,dns,kubernetes,Dns,Kubernetes,所以我对库伯内特斯还是个新手。我是Windows用户(抱歉),已安装Minikube。我正在尝试使用MiniKube学习Kubenetes。我已经创建了非常简单的RESTAPI,它应该与暴露在简单路由/Hello/{somestring}中的端口5000一起工作 我在MiniKube成功创建了一个POD/部署和服务,如下所示 minikube.exe start --kubernetes-version="v1.9.0" --vm-driver="hyperv" --memory=1024 --

所以我对库伯内特斯还是个新手。我是Windows用户(抱歉),已安装Minikube。我正在尝试使用MiniKube学习Kubenetes。我已经创建了非常简单的RESTAPI,它应该与暴露在简单路由/Hello/{somestring}中的端口5000一起工作

我在MiniKube成功创建了一个POD/部署和服务,如下所示

minikube.exe start --kubernetes-version="v1.9.0" --vm-driver="hyperv" --memory=1024 --hyperv-virtual-switch="Minikube Switch" --v=7 --alsologtostderr 
kubectl run simple-sswebapi-pod-v1 --replicas=1 --labels="run=sswebapi-pod-v1" --image=sachabarber/sswebapp:v1  --port=5000
kubectl expose deployment simple-sswebapi-pod-v1 --type=NodePort --name=simple-sswebapi-service
kubectl get services simple-sswebapi-service
然后我可以从中获取url并像这样粘贴到我的浏览器中

minikube service simple-sswebapi-service --url 
这给了我这个URL

然后我在我的主机上的浏览器中尝试,一切都很好,我的RESTAPI正在按预期运行

但是从我读到的内容来看,我相信我应该能够为服务使用DNS名称,而不是上面返回的url

事实上,我不确定这个IP地址作为--url命令的一部分返回了什么,上面的命令试图告诉我。从仪表板上可以看出,它不是为POD列出的服务端点之一

这就是服务

.\minikube.exe service simple-sswebapi-service --url 

这是吊舱

是否应该有一个DNS名称可用于我应该能够使用的服务,而不是从我刚刚创建的服务中获取url的这种相当黑客的方式。有人请让我知道这个url代表什么。我在这里迷路了

我已检查DNS加载项是否已在MiniKube中启用,请参阅下面列表中的kube DNS

正如我所说,这也是我在MiniKube仪表板中看到的服务

这让我更加困惑,因为我似乎无法将所有这些都与唯一一个似乎对我有效的IP地址联系起来,而这个IP地址就是我使用这条线路从服务中获取的

.\minikube.exe service simple-sswebapi-service --url 
此Ip地址根本不显示在仪表板中

我认为该服务应该在DNS名称处提供,例如:

简单sswebapi服务.default.svc.cluster.local

哪一个是

  • 服务的名称
  • 名称空间
  • svc告诉它是一个服务
为了完整起见,我将在命令行中描述服务

我错过了什么


是我的思维模式错了吗。我应该能够看到这个服务使用DNS在主机上了吗?或者DNS名称仅在POD内部可用?

kube DNS是内部DNS。您只能从群集中为服务使用DNS名称


由于您的服务类型是Nodeport,因此您可以使用该端口上机器的IP(minikube)连接到该服务。

OK,因此该端口就是现在有意义的节点端口。端点是用于豆荚的,我只有一个。因此,也许这是minikube单节点ip地址和节点端口,这可能是有意义的,dns只能通过POD在内部使用?想可能是这样的,如果有人可以评论,阅读这里的更多内容仍然可以很好地获得dns如何工作的答案。谢谢,我认为dns可能是内部的。我提供的dns查找看起来是否正确,我可以ssh到box上检查它,对吗?是的,从集群内部应该可以。尽管如此,我不确定sshing进入节点然后使用dns名称是否有效,因为使用的网络可能是主机网络,而不是kubernetes SDN。您应该尝试并确认。话虽如此,dns查找肯定应该在POD内部工作(除非它们也被配置为使用hostNetwork)。好的,我已经尝试过了,并得到一些奇怪的nslookup错误,我将在这里提出这个新问题