1

创建了一个无头服务:

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:8000or 172.17.0.9:8000,挂起,没有结果。

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

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

4

1 回答 1

1

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

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

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

于 2017-11-17T09:49:31.470 回答