无法连接创建为无头服务的 Kubernetes 端点 IP
Can't connect Kubernetes endpoints IPs with created as an headless service
创建了无头服务:
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
。现在它在 pods.
的容器中
那么如何通过API从其他应用程序连接到这些应用程序呢?可以使用哪个IP?
您是否在 Endpoint (Pod) 中暴露了您的容器端口?
据我所知,headless 服务可用于根据您配置服务的方式在 kube-dns 中生成条目,如所讨论的 in this doc。
但是,您可以使用 type: NodePort
创建另一个选择后端 Pods 的服务,并将它们公开在 NodePort/LB。
创建了无头服务:
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
。现在它在 pods.
那么如何通过API从其他应用程序连接到这些应用程序呢?可以使用哪个IP?
您是否在 Endpoint (Pod) 中暴露了您的容器端口?
据我所知,headless 服务可用于根据您配置服务的方式在 kube-dns 中生成条目,如所讨论的 in this doc。
但是,您可以使用 type: NodePort
创建另一个选择后端 Pods 的服务,并将它们公开在 NodePort/LB。