【问题标题】:Exposing minikube ( running on docker ) IP暴露 minikube(在 docker 上运行)IP
【发布时间】:2021-11-08 16:56:38
【问题描述】:

我在 docker (windows 10 + WSL) 上运行 Minikube 集群,该集群运行 3 个简单的应用程序,每个应用程序都有服务。

apiVersion: v1
kind: Service
metadata:
  name: firstapp
  labels:
    run: firstapp
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
    name: http
  selector:
    run: firstapp

为每个应用提供 3 个服务(firstapp、secondapp、thiredapp) ,现在我有一个 Ingress 供他们使用,即使用 Minikube IP。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
    - host: firstapp.192.168.49.2.nip.io
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: firstapp
                port:
                  number: 80
    - host: secondapp.192.168.49.2.nip.io
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: secondapp
                port:
                  number: 80
    - host: thiredapp.192.168.49.2.nip.io
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: thiredapp
                port:
                  number: 80

我想用我计算机上的网络浏览器访问这个入口,但我不能,如果我用 SHPOD 连接到集群并且我卷曲端点我得到一个响应,但我不想curl 用于我想从我的计算机访问的集群中的互联网应用程序,我需要做些什么来完成它?

GIT

【问题讨论】:

    标签: docker nginx kubernetes minikube


    【解决方案1】:

    首先你在 minikube 上启用了 ingress-nginx controller

    minikube addons enable ingress
    

    验证安装是否正常

    kubectl get pods -n ingress-nginx
    

    之后,您可以应用入口更改并从浏览器本地访问入口

    当您在本地时,您可能需要在 /etc/host 中添加条目以进行入口记录

    firstapp.192.168.49.2.nip.io 将指向主机的IP 或者您可以使用命令验证一次

    kubectl get ingress
    

    参考:https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/

    【讨论】:

    • 感谢您的快速响应,但我没有清楚地理解,我运行“kubectl get pods -n ingress-nginx”,我看到有一个 pod 正在运行,当我运行“kubectl get ingress”时“我看到这个输出:example-ingress firstapp.192.168.49.2.nip.io,secondapp.192.168.49.2.nip.io,thiredapp.192.168.49.2.nip.io 192.168.49.2,我需要什么现在要从我的浏览器访问网络应用程序吗?因为当我尝试 ping 主机(minikube)时我没有得到响应,我运行 minikube ip -> 接收 192.168.49.2 但我无法从网络访问它
    • 地址栏有什么吗? kubectl get ingress
    • 我得到:192.168.49.2
    • 你可以查看这篇文章有步骤:kubernetes.io/docs/tasks/access-application-cluster/….
    • 但我无法通过我的网络浏览器访问这个 ip 192.168.49.2
    猜你喜欢
    • 2018-02-25
    • 1970-01-01
    • 2017-04-01
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 2018-04-21
    相关资源
    最近更新 更多