无法连接到我的MiniKube外部服务ip/端口?

问题描述 投票:0回答:2

我有一个 mongo yaml 和 web-app(NodeJS) yaml 设置如下:

mongo-config.yaml

    apiVersion: v1
kind: ConfigMap
metadata:
  name: mongo-config
data:
  mongo-url: mongo-service

mongo-secret.yaml

   apiVersion: v1
kind: Secret
metadata:
  name: mongo-secret
type: Opaque
data:
  mongo-user: bW9uZ291c2Vy
  mongo-password: bW9uZ29wYXNzd29yZA==

mongo.yaml

 apiVersion: apps/v1
kind: Deployment
metadata:
  name: mongo-deployment
  labels:
    app: mongo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mongo
      # blueprint for pods, creates pods with mongo:5.0 image
  template:
    metadata:
      labels:
        app: mongo
    spec:
      containers:
        - name: mongodb
          image: mongo:5.0
          ports:
          - containerPort: 27017
          env:
          - name: MONGO_INITDB_ROOT_USERNAME
            valueFrom:
              secretKeyRef:
                name: mongo-secret
                key: mongo-user
          - name: MONGO_INITDB_ROOT_PASSWORD
            valueFrom:
              secretKeyRef:
                name: mongo-secret
                key: mongo-password
---
# kind: service
# name: any
# selector: select pods to forward the requests to
apiVersion: v1
kind: Service
metadata:
  name: mongo-service
spec:
  selector:
    app: mongo
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 27017

和 webapp.yaml:

    apiVersion: apps/v1
kind: Deployment
metadata:
  name: webapp-deployment
  labels:
    app: webapp
spec:
  replicas: 1
  selector:
    matchLabels:
      app: webapp
      # blueprint for pods, creates pods with mongo:5.0 image
  template:
    metadata:
      labels:
        app: webapp
    spec:
      containers:
        - name: webapp
          image: nanajanashia/k8s-demo-app:v1.0
          ports:
            - containerPort: 3000
          env:
            - name: USER_NAME
              valueFrom:
                secretKeyRef:
                  name: mongo-secret
                  key: mongo-user
            - name: USER_PWD
              valueFrom:
                secretKeyRef:
                  name: mongo-secret
                  key: mongo-password
            - name: DB_URL
              valueFrom:
                configMapKeyRef:
                  name: mongo-config
                  key: mongo-url
---
# kind: service
# name: any
# selector: select pods to forward the requests to
apiVersion: v1
kind: Service
metadata:
  name: webapp-service
spec:
  # default ClusterIP
  # nodeport = external service
  type: NodePort
  selector:
    app: webapp
  ports:
    - protocol: TCP
      port: 3000
      targetPort: 3000
      nodePort: 30100

我为每个文件运行了命令 kubectl 应用-f 我检查了返回的网络应用程序的状态: 应用程序正在监听端口 3000! 我通过以下方式获得了IP地址 minikube ip

端口是30100 为什么我无法访问此网络应用程序? 我收到无法访问网站的错误。

kubernetes minikube
2个回答
0
投票

如果您使用的是 Mac,请检查您的 minikube 驱动程序。我必须停下来,删除 minikube,然后重新启动,同时指定 hyperkit 驱动程序,如下所示。

minikube stop
minikube delete

docker start --vm-driver=hyperkit

这里列出的信息也非常有用。


0
投票
我也在遵循相同的教程(

https://www.youtube.com/watch?v=s_o8dwzRlu4),这对我很有帮助。将其发布给未来的读者。

minikube service --url <name of the web service>
就我而言是

minikube service --url web-service
这给了我这个输出。

http://127.0.0.1:55969 ❗ Because you are using a Docker driver on darwin, the terminal needs to be open to run it.
现在可以在浏览器中打开 URL 

http://127.0.0.1:55969

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.