我正在尝试使用console.log("Returned data: "+ pageQuery)
通过服务/ ClusterIP访问(从工作节点)(在工作节点上)一个pod,但是它不起作用。
有关服务的一些信息
curl http://cluster_ip:port_no
这是有关Pod的一些信息
masternode@Master:/localdocker$ kubectl describe svc registry
Name: registry
Namespace: default
Labels: io.kompose.service=registry
Annotations: kompose.cmd: kompose convert -f docker-compose.yaml -o localregistry.yaml
kompose.version: 1.1.0 (36652f6)
Selector: io.kompose.service=registry
Type: ClusterIP
IP: 10.100.126.230
Port: 5000 5000/TCP
TargetPort: 5000/TCP
Endpoints: 192.168.171.74:5000
Session Affinity: None
Events: <none>```
这是一个练习练习,我可以在没有任何NodePort的情况下(在他们的实际环境中)进行操作。
请让我知道是否需要其他信息。
答案 0 :(得分:4)
这是一种预期的行为,因为ClusterIP
类型的服务只能从kubernetes集群内部访问,即可以从另一个Pod等访问。
如果您想通过kubernetes集群外部的服务(即从节点本身)访问Pod,请使用NodePort类型的服务。
通过NodePort
服务公开该文件后,您将可以使用curl http://<NODE-IP>:<NODE-PORT>
ClusterIP
在群集的服务网络上创建,并且节点位于不同的网络中。通过创建NodePort
服务,每个节点网络中都会打开一个端口,以将流量转发到ClusterIP
。因此,本质上NodePort
在内部使用ClusterIP
,是建立在ClusterIP
之上的更高层次的抽象。