ip - 无法连接作为 headless (headless)服务创建的 Kubernetes 端点 IP

标签 ip kubernetes endpoint headless kube-dns

创建了一个 headless (headless)服务:

myapp-service-headless.yaml

apiVersion: v1
kind: Service
metadata:
  name: myapp-service-headless
spec:
  ports:
    - port: 8000
  selector:
    app: myapp
  clusterIP: None

将其创建到 Kubernetes 集群后,检查其服务状态:
$ kubectl create -f myapp-service-headless.yaml
$ kubectl describe service myapp-service-headless
Name:              myapp-service-headless
Namespace:         default
Labels:            <none>
Annotations:       <none>
Selector:          app=myapp
Type:              ClusterIP
IP:                None
Port:              <unset>  8000/TCP
TargetPort:        8000/TCP
Endpoints:         172.17.0.11:8000,172.17.0.9:8000
Session Affinity:  None
Events:            <none>

尝试连接172.17.0.11:8000172.17.0.9:8000 ,待处理,没有结果。

这里使用 kube-dns : myapp-service-headless.default.svc.cluster.local在应用程序中。现在它在 pod 的容器中。

那么如何通过 API 从其他应用程序连接到这些应用程序呢?可以使用哪个IP?

最佳答案

您是否在端点(Pod)内公开了容器端口?

据我所知, headless (headless)服务可用于根据您配置服务的方式在 kube-dns 中生成条目,如 in this doc 所述.

但是,您可以使用 type: NodePort 创建另一个服务。选择您的后端 Pod,并在 NodePort/LB 上公开它们.

关于ip - 无法连接作为 headless (headless)服务创建的 Kubernetes 端点 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47343514/

相关文章:

java - 套接字-在没有端口转发的情况下连接同一网络上的两台计算机?

docker - kubernetes 中的多行 Fluentd 日志

elasticsearch - 如何扩展有状态集的 PVC?

Windows Azure VM 端点

azure - 直接访问Azure工作人员;绕过负载均衡器

ssl - 专用 IP 和 SSL 证书的替代方案?

java - 在 Java 中,当我使用代理时,网站如何找到我的真实 IP 地址?

docker - 使用Minikube的Docker配置portainer

sparql - Sesame SPARQL 端点只读

php - 为什么 $_SERVER ['SERVER_ADDR' ] 无法正常工作?