我创建了一个POD,并使用以下命令将其公开为服务:
kubectl run nginx --image=nginx --restart=Never --port=80 --expose
当我执行以下命令时,我会得到两个不同的IP地址。以下IP地址代表什么?在群集中调用我的服务时,其他服务应该使用哪个IP。
master $ kubectl get ep nginx
NAME ENDPOINTS AGE
nginx 10.40.0.1:80 11m
master $ kubectl get svc nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx ClusterIP 10.103.78.253 <none> 80/TCP 12m
服务端点中的IP是由与pod上的标签匹配的服务选择器选择的后端pod的IP。。如果pod有多个副本,那么端点中就会有多个IP。ClusterIP中的IP是虚拟IP,应该用于调用服务。服务将通过clusterIP来的任何请求转发(带有负载平衡(到端点中存在的POD IP。
来自这里的文档。