簡體   English   中英

主機問題,使用 minikube + nginx 入口

[英]Problem with host, with minikube + nginx ingress

apiVersion: apps/v1
kind: Deployment
metadata:
  name: auth-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: auth
  template:
    metadata:
      labels:
        app: auth
    spec:
      containers:
        - name: auth
          image: emotive44/auth
          env:
            - name: JWT_KEY
              valueFrom:
                secretKeyRef:
                  name: jwt-secret
                  key: JWT_KEY
---
apiVersion: v1
kind: Service
metadata:
  name: auth-srv
spec:
  type: NodePort
  selector:
    app: auth
  ports:
    - name: auth
      protocol: TCP
      port: 3000
      targetPort: 3000
      nodePort: 30000

這是我的身份驗證服務和部署。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/use-regex: 'true'
spec:
  rules:
    - host: myapp.com
      http:
        paths:
          - path: /api/users/?(.*)
            pathType: "Prefix"
            backend:
              service:
                name: auth-srv
                port:
                  number: 3000

那是我的入口文件。

當我運行 commnand: minikube start ,我收到的消息是:

StartHost 失敗,但會再試一次:provision: get ssh host-port: get port 22 for "minikube": docker container inspect -f "'{{(index (index.NetworkSettings.Ports "22/tcp") 0). HostPort}}'" minikube: 退出狀態 1

kubectl get ingress ,返回:

NAME             CLASS     HOSTS     ADDRESS          PORTS  AGE 
ingress-service  <none>   myapp.com  192.168.49.2      80     106m

在我的 windows 主機文件中,我添加: 192.168.49.2 myapp.com

如果我嘗試在瀏覽器中打開 myapp.com: 無法訪問此站點

curl myapp.com

curl:(7)無法連接到myapp.com端口80:超時

這是對我的入口的描述:

Name:             ingress-service
Namespace:        default
Address:          192.168.49.2
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
  Host        Path  Backends
  ----        ----  --------
  myapp.com
              /api/users/?(.*)   auth-srv:3000 (172.17.0.2:3000)
Annotations:  kubernetes.io/ingress.class: nginx
              nginx.ingress.kubernetes.io/use-regex: true

可能是什么問題呢?

minikube 的 docker 驅動程序的 已知問題說:

  • 目前僅 Linux 支持ingressingress-dns插件。 #7332

它也適用於 Windows:

$ minikube addons enable ingress
* Due to docker networking limitations on windows, ingress addon is not supported for this driver.
Alternatively to use this addon you can use a vm-based driver:

        'minikube start --vm=true'

To track the update on this work in progress feature please check:
https://github.com/kubernetes/minikube/issues/7332

解決方案是使用hyperv 驅動程序

Hyper-V 是內置於現代版本的 Microsoft Windows 的本機管理程序。

使用--driver=hyperv標志重新創建您的 minikube 集群將解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM