无法访问我的minikube集群中的服务

时间:2019-09-13 03:27:56

标签: kubernetes minikube kubernetes-service

我使用minikube设置了一个单节点集群。我还在此节点内配置了一个客户端Pod,还配置了一个节点端口服务来访问Pod。但是该服务无法在浏览器上访问。

以下是客户端Pod和nodeport服务的配置文件:

client-pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: client-pod
  labels:
    component:web
spec:
  containers:
    - name: client
      image: stephengrider/multi-worker
      ports:
        - containerPort: 9999

client-node-port.yaml

kind: Service
metadata:
    name: client-node-port
spec:
    type: NodePort
    ports:
        - port: 3050
          targetPort: 3000
          nodePort: 31515
    selector:
        component:web

当我运行以下命令时,我可以看到Pod和服务的运行状态:

> kubectl get pods

NAME                              READY   STATUS    RESTARTS   AGE
client-pod                        1/1     Running   0          60m

> kubectl get services

NAME               TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
client-node-port   NodePort    10.99.14.107   <none>        3050:31515/TCP   63m


然后我在minikube集群上找到了服务URL:

> minikube service list

|-------------|------------------|-----------------------------|
|  NAMESPACE  |       NAME       |             URL             |
|-------------|------------------|-----------------------------|
| default     | client-node-port | http://192.168.99.101:31515 |
| default     | hello-minikube   | http://192.168.99.101:31324 |
| default     | kubernetes       | No node port                |
| kube-system | kube-dns         | No node port                |
|-------------|------------------|-----------------------------|

我能够使用表中针对它提到的URL访问hello-minikube服务。但是我无法访问客户端节点端口服务,它只是说:

This site can’t be reached192.168.99.101 refused to connect.

我该如何进行?

3 个答案:

答案 0 :(得分:2)

您的服务目标端口是3000,而容器打开端口是9999,服务将用于连接和发送请​​求。

将服务中的目标端口更改为9999,然后进行测试。还要检查容器是否处于运行状态。

答案 1 :(得分:2)

  

ContainerPort用于确定服务应使用哪个容器的端口。

     

svc规范上的目标端口指定当请求到达时服务应点击哪个端口。

spec:
  containers:
    - name: client
      image: stephengrider/multi-worker
      ports:
        - containerPort: 3000

由于您使用的stephengrider/multi-worker图像使用3000作为默认端口,因此请将containerPort设置为3000。更新pod yaml。它应该工作。

N.B:您应该始终将服务中那些在Pod侧有效的端口作为目标。

答案 2 :(得分:0)

我遇到了类似的问题。我删除了节点端口和Pod配置,然后重新部署了它。有效。