Kubernetes 带有选择器的Headless服务无法获取终结点

Kubernetes 带有选择器的Headless服务无法获取终结点,kubernetes,Kubernetes,在GKE上,我创建了一些吊舱和一个无头服务。headless服务有一个选择器,我希望端点获得与选择器匹配的Pod的IP 但是,端点仍然为空 $ kubectl get pods -lservice=front-end NAME READY STATUS RESTARTS AGE front-end-1567472915-tei91 1/1 Running 0 12m $ kubectl get

在GKE上,我创建了一些吊舱和一个无头服务。headless服务有一个选择器,我希望端点获得与选择器匹配的Pod的IP

但是,端点仍然为空

$ kubectl get pods -lservice=front-end
NAME                         READY     STATUS    RESTARTS   AGE
front-end-1567472915-tei91   1/1       Running   0          12m
$ kubectl get svc -lapp=sockshop
NAME        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
front-end   None         <none>                  11m
$ kubectl get endpoints -lapp=sockshop
NAME        ENDPOINTS   AGE
front-end   <none>      11m
$ more svc.yaml 
apiVersion: v1
kind: Service
metadata:
  labels:
    app: sockshop
  name: front-end
spec:
  clusterIP: None
  ports: null
  selector:
    service: front-end
$kubectl get pods-lservice=前端
名称就绪状态重新启动
前端-1567472915-tei91 1/1运行0 12m
$kubectl获得svc-lapp=袜子店
名称CLUSTER-IP EXTERNAL-IP端口年龄
前端无11m
$kubectl获取端点-lapp=sockshop
姓名端点年龄
前端11m
额外$svc.yaml
版本:v1
种类:服务
元数据:
标签:
应用程序:袜子店
名称:前端
规格:
集群:无
端口:空
选择器:
服务:前端

我希望端点获得Pod的IP,以便DNS注册工作。

如果
端口设置为
null
,则不会填充端点

您需要为端点添加一个端口(甚至是一个虚拟端口),以便使用与选择器匹配的pod的podip进行填充


端口:
-港口:1234
协议:TCP
目标港:1234

我认为您需要修改
svc.yaml
以包含一个直接应用于POD的选择器。例如,如果你的豆荚上有标签
app:sockshop
,你应该将其用作选择器。这听起来像个bug。我认为无头服务不应该需要端口。我将提交itI我也一直在想为什么,并得出了相同的结论,即必须声明一个虚拟端口。有一个PR挂起来修复它