无法访问Minikube上的NodePort服务

时间:2019-04-09 11:10:54

标签: minikube

我正在运行minikube。 Minikube状态结果为:

kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100

我定义了一个服务,具有以下端口配置:

  type: NodePort
  ports:
    - protocol: TCP
      port: 8082
      targetPort: 8082
      nodePort: 30082

但是当我尝试通过以下URL访问该服务时,无法访问它:

http://192.168.99.100:30082
http://192.168.99.100:8082

是否必须另外定义一个Ingress?我可以没有Ingress吗?哪个端口?

谢谢-基督教徒

该服务的完整文字以下:

apiVersion: v1
kind: Service
metadata:
  annotations:
    description: LAC 51 Service
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{"description":"LAC 51 Service"},"labels":{"name":"lac51","service":"lac51-svc"},"name":"lac51-svc","namespace":"default"},"spec":{"ports":[{"name":"lac51-http-port","nodePort":30082,"port":8082,"protocol":"TCP","targetPort":8082}],"selector":{"app":"lac51"},"type":"NodePort"}}
  creationTimestamp: null
  labels:
    name: lac51
    service: lac51-svc
  name: lac51-svc
  selfLink: /api/v1/namespaces/default/services/lac51-svc
spec:
  externalTrafficPolicy: Cluster
  ports:
  - name: lac51-http-port
    port: 8082
    protocol: TCP
    targetPort: 8082
  selector:
    app: lac51
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}

3 个答案:

答案 0 :(得分:1)

似乎与启动docker时使用的默认minikube驱动程序有关。 为避免这些问题,您可以强制使用特定的驱动程序(例如“ virtualbox”)。为此,请按照以下步骤操作:

  1. 使用以下方法删除旧的minikube:
    minikube delete
  1. 使用virtualbox驱动程序启动minikube:
minikube start --memory=4096 --driver=virtualbox
  1. 运行minikube ip。您会看到类似192.168.99.100的输出。
  2. 然后,再次创建Pod和服务,它应该可以正常工作。

我已在以下问题中找到此信息:https://github.com/kubernetes/minikube/issues/7344#issuecomment-703225254

答案 1 :(得分:0)

在这种情况下,不需要进入,Minikube应该自己公开服务。但是,如果您想尝试一下,请尝试以下tutorial

您可以运行minikube service list来获取所有可用服务及其相应URL的列表。另外,请使用正确的selector确保服务指向正确的Pod。

答案 2 :(得分:0)

Mac OS 有网络限制,--vm=true 下载 VM 映像:https://github.com/kubernetes/minikube/issues/7332

minikube stop
minikube delete
minikube start --vm=true