无法将Kubernetes端点IP与作为无头服务创建的IP

时间:2017-11-17 04:52:34

标签: ip kubernetes endpoint headless kube-dns

创建无头服务:

MyApp的服务-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-dnsmyapp-service-headless.default.svc.cluster.local。现在它在pods的容器中。

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

1 个答案:

答案 0 :(得分:1)

您是否在Endpoint(Pod)中公开了容器端口?

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

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

相关问题