如何在域中公开 Kubernetes minikube 应用程序

问题描述

使用 Kubernetes minikube 集群和 Nginx 入口控制器在 Windows 10 机器上公开的应用程序:

apiVersion: networking.k8s.io/v1
kind: Ingress
Metadata:
  name: ingress-Nginx-controller
  annotations:
    kubernetes.io/ingress.class: "Nginx"
spec:
  rules:
    - host: testapp
      http:
        paths:
          - path: /testapp-web-dev
            pathType: Prefix
            backend:
              service:
                name: testapp-portal-web-service
                port:
                  number: 80
          - path: /testapp-api1-dev
            pathType: Prefix
            backend:
              service:
                name: testapp-portal-api1-service
                port:
                  number: 80
          - path: /testapp-api2-dev
            pathType: Prefix
            backend:
              service:
                name: testapp-portal-api2-service
                port:
                  number: 80

在 etc 主机中添加了 testapp 条目,并且在本地一切正常。我可以在本地访问应用程序 http://testapp/testapp-web-devhttp://testapp//testapp-api1-dev

现在我想知道如何在域中的这台计算机之外公开它? IE。计算机名称是 machine1,我希望域的其他用户http://machine1/testapp-web-dev http://machine1/testapp-api1-dev 或类似的名称访问其所有组件。

解决方法

您的入口配置指定 testapp 作为它在传入请求中寻找的主机。 如果您将其更改为 machine1,并将 machine1 主机设置为解析为入口控制器服务的 ip,入口控制器应该能够成功地将对该主机的请求路由到您的服务中集群。

编辑:您可以遵循 k8s 文档中的 this useful guide 指导您完成在 minikube 上设置入口控制器的所有必需步骤