创建了一个 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:8000
或 172.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/