我试图在拥有2个节点的Kubernetes集群中部署我的示例微服务Docker映像。我研究了所有关于Pods、服务、部署、StatefulSets和守护进程集等方面的内容。
我正试图为此创建一个示例部署和服务。在这里,我探讨了部署如何提供可伸缩性和负载平衡功能。并通过提供服务ClusterIp来探索服务发现。
我有两个问题:
我的场景是,我试图在我的内置Ubuntu机器上部署微服务。该机器的IP地址为192.168.1.15。当我提到Kubernetes时,service也有一个clusterIP。
/api/v1/loadCustomer,我如何才能调用这个端点?我也需要使用clusterIP吗?我可以简单地调用192.168.1.15:8080/api/v1/loadCustomers吗?我指的是勘探的下列链接:
https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/
发布于 2018-04-24 11:00:04
tldr:
不能从集群外部使用clusterIP访问应用程序。您可以使用负载平衡器的IP (type=LoadBalaner)或节点的IP (type=NodePort)访问应用程序。
clusterIP的好处:众所周知,在其生命周期中可以创建和终止豆荚,从而创建IP (端点IP)地址,terminated.Therefore,clusterIP是静态的,它不依赖于豆荚的生命周期。
长答案
在Kubernetes集群中,应用程序或pod具有以下抽象。
端点IP和端口:它是由CNI插件提供的,比如法兰绒、棉布。
您可以通过以下命令列出和查看端点。
kubectl get endpoints --all-namespaces clusterIP和端口:它由kube组件提供。
您可以使用以下命令列出并查看clusterIP和端口
kubectl get services --all-namespaces externalIP和端口:它可以是3-4层负载均衡器的IP和端口或节点的IP和Nodeport。
如果要使用负载平衡器的IP和端口,可以在服务文件中使用type=LoadBalaner。
如果要使用节点的IP,则需要在服务文件中使用type=NodePort。
https://stackoverflow.com/questions/49999390
复制相似问题