在 GKE 上,我创建了一些 pod 和一个 headless 服务。 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
我希望端点能够获取 Pod 的 IP,以便 DNS 注册有效。
最佳答案
如果 ports
设置为 null
,端点将不会被填充。
您需要为端点添加一个端口(甚至是虚拟端口),以填充与选择器匹配的 Pod 的 PodIP。
端口:
- 端口:1234
协议(protocol):TCP
目标端口:1234
关于kubernetes - 带有选择器的 headless 服务没有获得端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39469202/