kubernetes - 带有选择器的 headless 服务没有获得端点

标签 kubernetes

在 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/

相关文章:

Azure Kubernetes - 副本与 HPA?

kubernetes - 用于列出 Kubernetes 中部署的 Pod 的 Kubectl 命令

angular - 在Angular 6中将Kubernetes secret 用作环境变量

kubernetes - Kubernetes中depends_on的等价物是什么

kubernetes - 我可以通过客户端api在kubernetes中同时创建多个Job吗?

kubernetes - 更改kubeadm的ip地址

kubernetes - GKE Nginx入口-分配静态IP

ssl - 有没有办法使用 prometheus 监控 kubernetes 中的 tls 证书?

kubernetes - Kubernetes日志命令TLS握手超时

python - 无法打开文件应用。 Kubernetes和Docker